gelöstes Problem: einfach gebaut mit buildozer
auf der Oracle Virtual MachineKivy App auf Android nur Lasten (3 Sekunden) und dann schließt sich
Ich mag würde über eine App Kivy-Python fragen. Die App ist in Windows, Python 3 mit
kivy
geschrieben und ist abhängig vonnumpy
, und einige.png
Datei.Aufbau der apk-Datei:
Auf der virtuellen Maschine Linux-Terminal, habe ich den Projektordner gelegt, dass die Hauptdatei
main.py
, und führen Sie enthält:buildozer android debug
die Prozess durch diese Linie dauerte ziemlich lange. Die apk-Datei hat die Größe von 11MB. Nachdem ich das Telefon eingesteckt habe, lief ich (am VM Linux Terminal):
buildozer android deploy run
Die App wurde auf dem Handy installiert.
Das Problem:
Aber wenn ich es öffnen: es sagt nur "Laden ..." neben dem Kivy Logo und dann schließt es sich.Was verursacht das?
Der Python, die ich in dem VM-Terminal sah
python 2.7.13
ist, während mein Code inpython 3
geschrieben wurde. Ist das das Problem? Wenn ja, was ist die Lösung?Ich hoffe, dass Sie Feedback dazu bekommen. Vielen Dank.
LÖSUNG:
Die Lösung war, den Code neu zu schreiben, so dass es in
python 2.7
funktioniert. Jetzt funktioniert der Code in Python2 und Python3. Dann baue ich die apk mit dieser bearbeitetenmain.py
. Jetzt stürzt es nicht ab.
Sie müssen die Logcat von Ihrem Gerät zu sehen, was den Absturz verursacht, könnte es sein, dass Sie mit der Standard-Buildozer-Konfiguration verpackt, so dass Ihr Code von Python2 nicht ausgeführt wird Python3, oder es könnte etwas anderes sein, aber der einfachste Weg zu wissen ist, 'Buildozer android run logcat' zu verwenden, um den Fehler zu sehen, wenn der AP abstürzt – Tshirtman
@Tshirtman danke Ich hatte die' logcat' ausgeführt, es ist ziemlich lang Reihe von Codes .. (und Es gibt keinen Fehler sichtbar), aber wenn ich mit Ctrl-C unterbrechen, sehe ich in den letzten Zeilen, dass es einige Python-Dateien <- aus dem Buildozer-Ordner <- aus dem Ordner von Python 2 läuft. Mein Code ist in Python 3 geschrieben. 'buildozer' kann python 3 noch nicht packen, ist es nicht ..? Eine Lösung könnte also sein, den Code neu zu schreiben, damit er in Python 2 kompatibel ist. – Arief
Ein neues Problem sollte eine neue Frage sein, da die Lösung, die Sie gefunden haben, anderen in Zukunft helfen kann. (buildozer kann zu python3 btw verpacken, Sie müssen es nur fragen, und haben die crystax NDK installiert) – Tshirtman