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

Valable sur Debian Buster 10

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

Doc github

# 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 .

Ressources

Compilation d'un projet

Init

Ouvrir un terminal dans votre projet:

buildozer init

Edition de buildozer.spec

Points importants

# (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
 
# (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

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.

__version__ = '0.67'
# (str) Application versioning (method 1)
version.regex = __version__ = ['"](.*)['"]
version.filename = %(source.dir)s/main.py

# (str) Application versioning (method 2)
# version = 1.2.0

Version Méthode 2

La version est définie dans ce fichier buildozer.spec:

# (str) Application versioning (method 1)
#version.regex = __version__ = ['"](.*)['"]
#version.filename = %(source.dir)s/main.py

# (str) Application versioning (method 2)
version = 1.2.0

Exemple

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.

Suivre tout ce qui se passe sur le téléphone avec logcat

sudo apt-get install adb
adb root
adb shell
kminilte:/sdcard/kivy/TapOSC $ logcat

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:

    Label:
        id: Titre
        font_size:  root.width/28
        text: self.titre.text

Dans main.py:

class Machin(Screen):
    titre = ObjectProperty()
 
    # Dans le __init__() ou ailleurs
    self.titre.text = "éèàùê"

Un jeu qui marche

archives/kivy_buildozer_pour_creer_une_application_android_avec_un_script_python.1546541330.txt.gz · Dernière modification : 2019/01/03 18:48 de serge