kivy und ffpyplayer auf android

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Benutzeravatar
ab_connor
User
Beiträge: 2
Registriert: Montag 31. Mai 2021, 07:18

Moin, liebe Wissende,

ich programmiere gerade ein Projekt unter kivy, mit dem Ziel, eine App auf Android zu erstellen. Die soll unter anderen Videos darstellen. Hier zeigt sich das Problem, dass der dazu genutzte FFPyPlayer zwar unter Linux funktioniert. Portiere ich den Code mittels Buildozer dann aber auf Android - was erst einmal problemlos durchläuft - startet die App leider nicht, sondern bricht mit einem Error ab. Hier kommt, was Logcat rauswirft:

Code: Alles auswählen

05-28 16:41:28.984 15070 15232 I python : [WARNING] [Image ] Unable to load image </data/user/0/kreisjugenddienst.de.kjdapp/files/app/_python_bundle/site-packages/kivy/data/images/image-loading.gif>
05-28 16:41:28.985 15070 15232 I python : Traceback (most recent call last):
05-28 16:41:28.986 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/app/main.py", line 784, in
05-28 16:41:28.987 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/platform/build-arm64-v8a/build/python-installs/kjdapp/kivy/app.py", line 854, in run
05-28 16:41:28.989 15070 15232 I python : File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
05-28 16:41:28.990 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/app/main.py", line 720, in on_start
05-28 16:41:28.991 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/app/main.py", line 511, in veranst_karussel
05-28 16:41:28.993 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/app/main.py", line 275, in init
05-28 16:41:28.994 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/platform/build-arm64-v8a/build/python-installs/kjdapp/kivy/uix/behaviors/button.py", line 121, in init
05-28 16:41:28.995 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/platform/build-arm64-v8a/build/python-installs/kjdapp/kivy/uix/image.py", line 355, in init
05-28 16:41:28.996 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/platform/build-arm64-v8a/build/python-installs/kjdapp/kivy/uix/image.py", line 369, in _load_source
05-28 16:41:28.997 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/platform/build-arm64-v8a/build/python-installs/kjdapp/kivy/loader.py", line 474, in image
05-28 16:41:28.998 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/platform/build-arm64-v8a/build/python-installs/kjdapp/kivy/loader.py", line 184, in _get_loading_image
05-28 16:41:28.999 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/platform/build-arm64-v8a/build/python-installs/kjdapp/kivy/core/image/init.py", line 460, in load
05-28 16:41:29.000 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/platform/build-arm64-v8a/build/python-installs/kjdapp/kivy/core/image/init.py", line 223, in init
05-28 16:41:29.001 15070 15232 I python : File "/home/diakon/kivy_venv/share/TestApp/.buildozer/android/platform/build-arm64-v8a/build/python-installs/kjdapp/kivy/core/image/img_ffpyplayer.py", line 55, in load
05-28 16:41:29.003 15070 15232 I python : File "ffpyplayer/pic.pyx", line 982, in ffpyplayer.pic.ImageLoader.cinit
05-28 16:41:29.004 15070 15232 I python : Exception: Failed to open input file /data/user/0/kreisjugenddienst.de.kjdapp/files/app/_python_bundle/site-packages/kivy/data/images/image-loading.gif: Invalid data found when processing input
05-28 16:41:29.004 15070 15232 I python : Python for android ended.
05-28 16:41:29.254 1399 1721 W InputDispatcher: channel '4803e6c kreisjugenddienst.de.kjdapp/org.kivy.android.PythonActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
05-28 16:41:29.255 1399 1721 E InputDispatcher: channel '4803e6c kreisjugenddienst.de.kjdapp/org.kivy.android.PythonActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
05-28 16:41:28.789 1399 8535 D BatteryService: mHealthInfo.batteryTemperature: 226
05-28 16:41:29.257 1399 8785 I ActivityManager: Process kreisjugenddienst.de.kjdapp (pid 15070) has died: fore TOP
Das Mysteriöse dabei ist, dass das Standard-Bild für die Ladesequenz gar nicht "image-loading.gif", sondern "image-loading.zip" ist. Das ist eine Sequenz von PNG-Bildern. Im Prinzip das Gleiche wie das GIF-Bild. Es hat aber auch keinen Einfluss, wenn ich das Bild zum Laden mittels Property image_loading ändere oder ein PNG-Bild unter image-loading.gif speichere. Der Fehler bleibt immer der Gleiche.

Ich bin für alle Tipps dankbar.
Benutzeravatar
ab_connor
User
Beiträge: 2
Registriert: Montag 31. Mai 2021, 07:18

Ich habe den Fehler jetzt gefunden. Es lag daran, dass buildozer beim Kompilieren noch die Version 1.11.1 von Kivy nutzte. Die vertrug sich anscheinend nicht mit der Version von ffpyplayer. Um den Fehler zu beheben, musste ich den Ordner ".buildozer" komplett mit allen Unterordnern löschen und in der Datei buildozer.spec die Zeile requirements mit "kivy==2.0.0" ergänzen. So wählt buildozer dann die gewünschte Version von Kivy beim Download. Danach funktioniert der Start der App.
Antworten