Outils pour utilisateurs

Outils du site


archives:kivy_buildozer_pour_creer_une_application_android_avec_un_script_python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
kivy_buildozer_pour_creer_une_application_android_avec_un_script_python [2018/03/22 08:08] sergearchives:kivy_buildozer_pour_creer_une_application_android_avec_un_script_python [2019/12/26 09:38] (Version actuelle) – ↷ Page déplacée de archive:kivy_buildozer_pour_creer_une_application_android_avec_un_script_python à archives:kivy_buildozer_pour_creer_une_application_android_avec_un_script_python serge
Ligne 1: Ligne 1:
-=====Kivy: Buildozer pour créer une application Android avec un script python=====+======Archive: Buildozer pour créer une application Android avec un script python======
  
-**Cette page ne concerne que python 3.5**+<WRAP center round box 50% centeralign> 
 +**{{tagpage>kivy|Toutes les pages Kivy}}** 
 +</WRAP>
  
-Testé sur Debian Strech 9.2 en octobre 2017.+<WRAP center round info centeralign 50%> 
 +**Testé sur Debian Buster 10 Alpha 3 en Janvier 2019**\\  
 +</WRAP>
  
-====== Installation de Kivy ======+===== Ressources ===== 
 +  * [[https://github.com/kivy/buildozer|Buildozer sur GitHub]] 
 +  * [[http://buildozer.readthedocs.io/en/latest/installation.html|Installation]]
  
-Voir [[2_Kivy:_Installation|Installation de Kivy et pyjnius]]+=====Tous les problèmes avec buildozer===== 
 +==== Cython ==== 
 +**Je ne comprends absolument pas pourquoi il faut cython en python3 et non pas cython3 !!!!!!!!!!!!!!!!!!**
  
-====== Buildozer ======+=====Contexte pour python 3===== 
 +  * **https://github.com/kivy/kivy/wiki/Android-SDK-NDK-Information**
  
-===== Installation =====+  * SDK 20 / API 24 / NDK 14b / Python 3.7
  
-Dépendances suffisantes mais peut-être pas nécessaires: +===== Compilation d'un projet =====
- +
-Vérifier la version de cython à installer: +
- +
-  * https://kivy.org/docs/installation/installation-linux.html#cython +
- +
-<code> +
-sudo apt-get install python3-dev zlib1g-dev pkg-config python3-colorama python3-sh python3-appdirs python3-jinja2 python3-six +
-sudo pip3 install --upgrade cython==0.25 +
-</code> +
-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 python2.7 python2.7-dev openjdk-8-jdk unzip zlib1g-dev zlib1g:i386 +
-</code> +
-Version en cours de dev: +
- +
-  * https://pypi.python.org/pypi/buildozer +
- +
-<code> +
-git clone https://github.com/kivy/buildozer +
-cd buildozer/ +
-python3 setup.py build +
-sudo pip3 install -e . +
-</code> +
-Version stable: +
- +
-<code> +
-sudo pip3 install buildozer +
-</code> +
-=== Ressources === +
- +
-  * https://github.com/kivy/buildozer +
-  * http://buildozer.readthedocs.io/en/latest/installation.html +
- +
-=== Cristax === +
- +
-Télécharger CrystaX https://www.crystax.net/en/download +
- +
-== Extraire == +
- +
-700 MO à télécharger, 8.5 Go décompressé, laisser le dossier dans votre home. +
- +
-====== Compilation d'un projet ======+
  
 +==== Init ====
 Ouvrir un terminal dans votre projet: Ouvrir un terminal dans votre projet:
- +  buildozer init
-==== Init ==== +
- +
-''%%buildozer init%%'' +
 ==== Edition de buildozer.spec ==== ==== Edition de buildozer.spec ====
- 
 **Points importants** **Points importants**
- 
 <code python> <code python>
 # (str) Source code where the main.py live # (str) Source code where the main.py live
Ligne 83: Ligne 41:
 # (list) Application requirements # (list) Application requirements
 # comma seperated e.g. requirements = sqlite3,kivy # comma seperated e.g. requirements = sqlite3,kivy
-requirements = python3crystax==3.5, 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 landscapeportrait or all) +
-orientation = landscape+
  
 # (list) Permissions # (list) Permissions
 android.permissions = INTERNET,CHANGE_WIFI_MULTICAST_STATE,ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE android.permissions = INTERNET,CHANGE_WIFI_MULTICAST_STATE,ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE
  
-(str) Android NDK version to use +SDK 20 / API 26 / NDK 15c / Python 3.7 
-android.ndk 10.3.2 +android.api 26 
- +android.sdk = 20 
-# (str) Android NDK directory (if empty, it will be automatically downloaded.) +android.ndk = 15c 
-android.ndk_path = /home/toto/crystax-ndk-10.3.2+android.sdk_path = /media/data/src_android/android-sdk-20 
 +android.ndk_path = /media/data/src_android/android-ndk-r15c
  
 # (str) The Android arch to build for, choices: armeabi-v7a, arm64-v8a, x86 # (str) The Android arch to build for, choices: armeabi-v7a, arm64-v8a, x86
 android.arch = armeabi-v7a android.arch = armeabi-v7a
 </code> </code>
 +
 ==== Version ==== ==== Version ====
- 
 Il faut définir une version pour l'application que vous compilez. Il faut définir une version pour l'application que vous compilez.
  
 === Version Méthode 1 === === 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. 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>
-''%%__version__ = '0.67'%%'' +
 <code> <code>
 # (str) Application versioning (method 1) # (str) Application versioning (method 1)
Ligne 125: Ligne 72:
 </code> </code>
 === Version Méthode 2 === === Version Méthode 2 ===
- 
 La version est définie dans ce fichier buildozer.spec: La version est définie dans ce fichier buildozer.spec:
- 
 <code> <code>
 # (str) Application versioning (method 1) # (str) Application versioning (method 1)
Ligne 136: Ligne 81:
 version = 1.2.0 version = 1.2.0
 </code> </code>
-=== Attention === 
  
-Et en plus android n'est pas intelligent artificiel: 
  
-Pour Android, version = 1.0 est inférieur à version = 0.506, et il dit: +==== Compilation du apk ==== 
- +  buildozer -v android debug
-ça semble pourri ton truc, je l'installe pas! Na ! +
- +
-==== Exemple ==== +
- +
-  * https://github.com/sergeLabo/TapOSC/blob/master/buildozer.spec +
- +
-===== Compilation du apk ===== +
- +
-''%%buildozer -v android debug%%'' +
- +
-===== .buildozer ===== +
- +
-La compilation va créer un dossier .buildozer d'une taille en gros de 1 Go !! +
- +
-====== Quand ça plante ====== +
- +
-=+
  
 +===== Quand ça plante =====
   * buildozer android clean   * buildozer android clean
-  * Détruire /home/pierre/.local/share/python-for-android+  * Détruire /home/user/.local/share/python-for-android
   * .buildozer du home   * .buildozer du home
   * .buildozer de votre dossier   * .buildozer de votre dossier
   * .android du home   * .android du home
  
-====== Debug de l'*.apk ======+===== Debug de l'*.apk si l'application ne se lance pas =====
  
-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. 
- 
-  * https://play.google.com/store/apps/details?id=org.kivy.pygame&hl=en 
  
 ==== Suivre tout ce qui se passe sur le téléphone avec logcat ==== ==== Suivre tout ce qui se passe sur le téléphone avec logcat ====
- +  [[https://kivy.org/docs/guide/packaging-android.html|Guide Android]] 
-  * https://kivy.org/docs/guide/packaging-android.html +<code> 
- +sudo apt-get install adb 
-''%%sudo apt-get install adb%%''\\ +adb root 
-''%%adb root%%''\\ +adb shell 
-''%%adb shell%%''\\ +kminilte:/sdcard/kivy/TapOSC $ logcat
-''%%kminilte:/sdcard/kivy/TapOSC $ logcat%%'' +
- +
-====== Limitation de kivy ====== +
- +
-buildozer pour python3 est en développement +
- +
-  * Aucun accent dans les fichier *.kv +
-  * Les packages utilisés dans kivy doivent être dans Crystax. +
-  * Le *.apk de [[https://github.com/sergeLabo/TapOSC|TapOSC]] cause mais ne fume pas ! +
- +
-==== UTF-8 dans .kv ==== +
- +
-=== 1 === +
- +
-Cette proposition ne marche pas dans android après compilation buildozer! +
- +
-<code python> +
-with open(filename, encoding='utf-8') as f:  +
-    Builder.load_string(f.read()) +
 </code> </code>
-Marchent seulement avec kivy, en exécution directe. 
  
-=== 2 === 
- 
-''%%# -*- coding: utf-8 -*-%%'' 
- 
-en début de kv ne marche pas 
- 
-Par contre, il est possible de définir mettre une variable dans le main, pour définir le str du kv 
- 
-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> 
-====== Les packages python 3.5 impossibles ====== 
  
-  * twisted qui n'est pas officiellement porté en python 3 en novembre 2017 et n'est pas pris en charge par buildozer 
  
-====== Un jeu en cours de développement qui marche ====== 
  
-  * [[Kivy_Multi_Pong|Kivy Multi Pong]] 
  
  
-{{tag>kivy}}+{{tag>archive sb}}
archives/kivy_buildozer_pour_creer_une_application_android_avec_un_script_python.1521706120.txt.gz · Dernière modification : 2018/03/22 08:08 de serge