Problem solved:application Kivy sur les charges que Android (3 secondes), puis se ferme
Je voudrais demander une application Kivy-Python juste construit en utilisant
buildozer
sur la machine virtuelle Oracle. L'application est écrit en Windows, python 3 en utilisantkivy
et dépend denumpy
, et certains fichiers.png
.Construire le fichier apk:
Sur la machine virtuelle de terminal Linux, j'ai mis le dossier du projet qui contient le fichier principal
main.py
, puis exécutez:buildozer android debug
la processus par cette ligne a pris beaucoup de temps. Le fichier APK a la taille de 11MB. Après avoir branché le téléphone, j'ai couru (sur le terminal VM Linux):
buildozer android deploy run
L'application a été installée sur le téléphone.
Le problème:
Mais quand je l'ouvre: il est dit que "Chargement en cours ..." à côté du logo Kivy puis elle se ferme.Qu'est-ce qui cause cela?
Le python que j'ai vu dans le terminal VM est
python 2.7.13
alors que mon code a été écrit enpython 3
. Est-ce le problème? Si c'est le cas, qu'est-ce que est la solution?Nous espérons recevoir des commentaires à ce sujet. Merci.
SOLUTION:
La solution a consisté à réécrire le code tel qu'il fonctionne dans
python 2.7
. Maintenant, le code fonctionne dans Python2 et Python3. Ensuite, je construis l'apk en utilisant cemain.py
édité. Maintenant, il ne plante pas.
vous devez obtenir le logcat de votre appareil pour voir ce qui cause le plantage, il se peut que vous emballé en utilisant la configuration de buildozer par défaut, de sorte que votre code est exécuté par python2 pas python3, ou c'est peut-être quelque chose d'autre, mais le moyen le plus facile de savoir est d'utiliser 'buildozer android run logcat' pour voir l'erreur quand l'ap se bloque – Tshirtman
@Tshirtman merci J'ai lancé le' logcat', c'est assez long rangée de codes .. (et il n'y a pas d'ERREUR visible) mais quand j'interromps en utilisant ctrl-c, je vois dans les dernières lignes qu'il exécute des fichiers python <-dans le dossier buildozer <- du dossier de Python 2. Mon code est écrit en python 3. 'buildozer' ne peut pas empaqueter python 3 mais n'est-ce pas ..? Donc une solution peut être de réécrire le code pour qu'il soit compatible dans python 2. – Arief
Un nouveau problème devrait être une nouvelle question, puisque la solution que vous avez trouvée au premier peut aider les autres à l'avenir. (buildozer peut empaqueter à python3 btw, vous avez juste besoin de le demander, et avoir le crystax NDK installé) – Tshirtman