Outils pour utilisateurs

Outils du site


archives:kivy_buildozer_pour_creer_une_application_android_avec_un_script_python

Ceci est une ancienne révision du document !


Kivy: Buildozer pour créer une application Android avec un script python

Cette page ne concerne que python 3.5 Pour python 2.7, voir la page Buildozer avec python 2.7

En décembre 2018, buildozer compile officiellement avec python 3, ne plus utiliser Crystax

Bigre: Impossible de compiler un Hello World ! en décembre 2018, en python 3.5 sur debian stretch !

Utiliser VirtualBox avec 2 systèmes invités différents si vous utilisez python3.5 et python2.7 pour divers projets.

Tout pour Debian Buster

sudo dpkg --add-architecture i386
sudo apt-get update

Logiciels

sudo apt-get install filezilla terminator caja-open-terminal grsync gparted geany geany-plugins ncdu git thunderbird blender inkscape vlc gimp audacity gdebi keepassxc geeqie blender simple-scan gnome-system-tools cups locales 

System

sudo apt-get install libsdl2-dev zlib1g-dev pkg-config autoconf automake cmake dkms libtool libsdl2-2.0-0 ccache openjdk-8-jdk unzip ffmpeg libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev libportmidi-dev libswscale-dev libavformat-dev libavcodec-dev libgstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 libpangox-1.0-0:i386 libidn11:i386 zlib1g:i386 openjdk-8-source libssl-dev openssl gcc libpangoxft-1.0-0:i386 adb libtool build-essential python3-pip python3-dev python3-six libpython3-all-dev python3-all python3-all-dev python3-virtualenv virtualenv

N'existe plus

libav-tools

Python 3.7

Successfully installed
MarkupSafe-1.1.0 appdirs-1.4.3 colorama-0.4.1 jinja2-2.10 sh-1.12.14

sudo pip3 install jinja2 appdirs sh colorama setuptools

cython3: 0.28.4-1

sudo apt-get install cython3 

Building wheels for collected packages:
pyyaml, bs4, twisted, kivy, pyjnius, Kivy-Garden Installing collected packages: pyyaml, soupsieve, beautifulsoup4, bs4, unidecode, lxml, attrs, Automat, PyHamcrest, constantly, hyperlink, incremental, zope.interface, twisted, numpy, opencv-python, Kivy-Garden, docutils, pygments, kivy, pygame, ptyprocess, pexpect, buildozer, pyjnius

Successfully installed
Automat-0.7.0 Kivy-Garden-0.1.4 PyHamcrest-1.9.0 attrs-18.2.0 beautifulsoup4-4.7.0 bs4-0.0.1 buildozer-0.37 constantly-15.1.0 docutils-0.14 hyperlink-18.0.0 incremental-17.5.0 kivy-1.10.1 lxml-4.2.6 numpy-1.15.4 opencv-python-3.4.5.20 pexpect-4.6.0 ptyprocess-0.6.0 pygame-1.9.4 pygments-2.3.1 pyjnius-1.1.4 pyyaml-3.13 soupsieve-1.6.1 twisted-18.9.0 unidecode-1.0.23 zope.interface-4.6.0 sudo pip3 install pyyaml bs4 unidecode lxml twisted numpy opencv-python kivy pygame buildozer pyjnius ===== Les dépendances en qq lignes provisoires Debian Stretch===== <code> sudo dpkg –add-architecture i386 sudo apt-get update # Logiciels sudo apt-get install filezilla terminator caja-open-terminal grsync gparted geany geany-plugins ncdu git thunderbird blender inkscape vlc gimp audacity gdebi keepassxc geeqie blender simple-scan gnome-system-tools cups locales # System sudo apt-get install python-pip python-freenect libsdl2-dev zlib1g-dev pkg-config autoconf automake cmake libav-tools dkms libtool libsdl2-2.0-0 ccache openjdk-8-jdk unzip ffmpeg libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev libportmidi-dev libswscale-dev libavformat-dev libavcodec-dev libgstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 libpangox-1.0-0:i386 libidn11:i386 python2.7 python2.7-dev zlib1g:i386 openjdk-8-source libssl-dev openssl gcc libpangoxft-1.0-0:i386 adb libtool build-essential python-dev python3-pip python3-dev python3-six python-six libpython3-all-dev python3-all python3-all-dev python3-virtualenv virtualenv # pip3 sudo pip3 install jinja2 appdirs sh colorama setuptools sudo pip3 install pyyaml bs4 unidecode lxml twisted numpy opencv-python kivy pygame cython buildozer pyjnius pygame kivy buildozer cython sudo pip3 install –upgrade cython==0.29 sudo pip3 install –upgrade pyjnius pygame kivy buildozer sudo pip3 install https://github.com/kivy/buildozer/archive/master.zip # pip sudo pip install twisted numpy opencv-python pygame kivy colorama sh appdirs jinja2 six pyopenssl cython setuptools sudo pip install buildozer sudo pip install https://github.com/kivy/buildozer/archive/master.zip sudo pip install -U –force-reinstall Cython # locales sudo dpkg-reconfigure locales </code> =====Installation de python 3.7 sur debian stretch===== !!!!!!!!!!!!!!!! Ne surtout pas faire ça, ça va casser tous les programmes construit en python !!!!!!!!!!!!!!!!!!!! sudo apt-get install build-essential checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev cd /usr/src sudo wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz sudo tar xzf Python-3.7.0.tgz cd Python-3.7.0 sudo ./configure –enable-optimizations sudo make altinstall python3 -V ===== Installation de Kivy ===== Voir Installation de Kivy et pyjnius ===== Installation de Buildozer ===== ==== Installation ==== Dépendances suffisantes mais peut-être pas nécessaires: <code> sudo apt-get install python3-dev zlib1g-dev pkg-config python3-colorama python3-sh python3-appdirs python3-jinja2 python3-six autoconf automake libtool build-essential cmake libav-tools dkms </code> ===Cython=== Vérifier la version de cython à installer: * Version de cython En décembre 2018, version = 0.29.1 sudo pip3 install cython Pour imposer une version: sudo pip3 install –upgrade cython==0.23 Mais quelle version est nécessaire ? ===Les lib32 pour un 64 bits=== <code> sudo dpkg –add-architecture i386 sudo apt-get update sudo apt-get install build-essential ccache git libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 openjdk-8-jdk unzip zlib1g-dev zlib1g:i386 </code> ===En décembre 2018 sur debian stretch=== Version stable: sudo pip3 install buildozer retourne Successfully installed buildozer-0.37 virtualenv-16.1.0 ===Doc github=== <code> # via pip (latest stable, recommended) sudo pip install buildozer # latest dev version sudo pip install https://github.com/kivy/buildozer/archive/master.zip # Successfully installed buildozer-0.38.dev0 # git clone, for working on buildozer git clone https://github.com/kivy/buildozer cd buildozer python setup.py build sudo pip install -e . </code> === Ressources === * Buildozer sur GitHub * Installation ===== Compilation d'un projet ===== ==== Init ==== Ouvrir un terminal dans votre projet: buildozer init ==== Edition de buildozer.spec ==== Points importants <code python> # (str) Source code where the main.py live source.dir = . # (list) Source files to include (let empty to include all the files) source.include_exts = py,png,jpg,kv,atlas,ogg # (list) List of inclusions using pattern matching source.include_patterns = data/*.png, sound/*.ogg # (list) Application requirements # comma seperated e.g. requirements = sqlite3,kivy requirements = python3,kivy,openssl # (str) Presplash of the application presplash.filename = %(source.dir)s/data/logo_labomedia.png # (str) Icon of the application icon.filename = %(source.dir)s/data/multipong.png # (str) Supported orientation (one of landscape, portrait or all) orientation = landscape # (list) Permissions android.permissions = INTERNET,CHANGE_WIFI_MULTICAST_STATE,ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE # (str) The Android arch to build for, choices: armeabi-v7a, arm64-v8a, x86 android.arch = armeabi-v7a </code> ==== Version ==== Il faut définir une version pour l'application que vous compilez. === Version Méthode 1 === Cette ligne doit être la première ligne de code du fichier main.py; les versions seront gérées dans ce fichier. <code>version = '0.67'</code> <code> # (str) Application versioning (method 1) version.regex = version = ['“](.*)['”] version.filename = %(source.dir)s/main.py # (str) Application versioning (method 2) # version = 1.2.0 </code> === Version Méthode 2 === La version est définie dans ce fichier buildozer.spec: <code> # (str) Application versioning (method 1) #version.regex = version = ['“](.*)['”] #version.filename = %(source.dir)s/main.py # (str) Application versioning (method 2) version = 1.2.0 </code> ==== Exemple ==== * Un buildozer.spec de TapOSC sur GitHub ==== Compilation du apk ==== buildozer -v android debug ===== Quand ça plante ===== * buildozer android clean * Détruire /home/user/.local/share/python-for-android * .buildozer du home * .buildozer de votre dossier * .android du home ===== Debug de l'*.apk si l'application ne se lance pas ===== ==== Kivy Launcher ==== Cette méthode n'exécute pas le apk, mais lance le main.py. Utilisez logcat. * Méthode insuffisante ==== Suivre tout ce qui se passe sur le téléphone avec logcat ==== * Guide Android <code> sudo apt-get install adb adb root adb shell kminilte:/sdcard/kivy/TapOSC $ logcat </code> ==== Problème avec UTF-8 dans .kv ==== * A vérifier si c'est toujours actuel en 2019 avec python 3 par défaut ! Dans truc.kv: <code python> Label: id: Titre font_size: root.width/28 text: self.titre.text </code> Dans main.py: <code python> class Machin(Screen): titre = ObjectProperty() # Dans le init() ou ailleurs self.titre.text = “éèàùê” </code> ===== Un jeu qui marche ===== * Multi Pong**

,
archives/kivy_buildozer_pour_creer_une_application_android_avec_un_script_python.1546539597.txt.gz · Dernière modification : 2019/01/03 18:19 de serge