[ArchLinux] Kivy .py to .apk - Buildozer failed to execute the last command

Meta.Morph

Lt. Junior Grade
Registriert
März 2022
Beiträge
428
Servus,
wollte mich mit Python/Kivy beschäftigen. Leider funktioniert das ganze nicht ganz so toll. Zwar kann ich die Bibliothek einbinden und Programme ausführen aber die Umwandlung in APK-Dateien schlägt fehl.

Hab mich gestern und heute schon zu lange damit beschäftigt – vielleicht weiß einer von euch Rat.

Ein Problem ist: von „offizieller“ Seite, finde ich nur Anleitungen für Ubuntu. Kivy und Buildozer können zwar über pip installiert werden. Jedoch werden noch Abhängigkeiten aufgezählt, die unter diesem Namen nicht in den Arch-Repos zu finden sind. Ich denke, das ich alle Abhängigkeiten erwischt hab…


[user@asgard ExPong]$ buildozer android debug deploy run > fehler2.txt
/bin/sh: Zeile 1: dpkg: Kommando nicht gefunden.
[WARNING]: prerequisites.py is experimental and does not support all prerequisites yet.
[WARNING]: Please report any issues to the python-for-android issue tracker.
/home/user/Projekte/Python/ExPong/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py:59: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
if LooseVersion(cur_ver) < LooseVersion(version):
[WARNING]: prerequisites.py is experimental and does not support all prerequisites yet.
[WARNING]: Please report any issues to the python-for-android issue tracker.
[INFO]: Recipe python3: version "3.10.8" requested
[INFO]: Will compile for the following archs: arm64-v8a, armeabi-v7a
[INFO]: Found Android API target in $ANDROIDAPI: 27
[INFO]: Available Android APIs are (27)
[INFO]: Requested API target 27 is available, continuing.
[INFO]: Found NDK dir in $ANDROIDNDK: /home/user/.buildozer/android/platform/android-ndk-r23b
[INFO]: Found NDK version 23b
[INFO]: Getting NDK API version (i.e. minimum supported API) from user argument
[INFO]: ccache is missing, the build will not be optimized in the future.
[INFO]: Of the existing distributions, the following meet the given requirements:
[INFO]: pong: min API 21, includes recipes (hostpython3, libffi, openssl, sdl2_image, sdl2_mixer, sdl2_ttf, sqlite3, python3, sdl2, setuptools, six, pyjnius, android, kivy, certifi), built for archs (arm64-v8a, armeabi-v7a)
[INFO]: pong has compatible recipes, using this one
[WARNING]: prerequisites.py is experimental and does not support all prerequisites yet.
[WARNING]: Please report any issues to the python-for-android issue tracker.
/home/user/Projekte/Python/ExPong/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py:59: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
if LooseVersion(cur_ver) < LooseVersion(version):
[WARNING]: prerequisites.py is experimental and does not support all prerequisites yet.
[WARNING]: Please report any issues to the python-for-android issue tracker.
[INFO]: Will compile for the following archs: arm64-v8a, armeabi-v7a
[INFO]: Found Android API target in $ANDROIDAPI: 27
[INFO]: Available Android APIs are (27)
[INFO]: Requested API target 27 is available, continuing.
[INFO]: Found NDK dir in $ANDROIDNDK: /home/user/.buildozer/android/platform/android-ndk-r23b
[INFO]: Found NDK version 23b
[INFO]: Getting NDK API version (i.e. minimum supported API) from user argument
[INFO]: ccache is missing, the build will not be optimized in the future.
[INFO]: Of the existing distributions, the following meet the given requirements:
[INFO]: pong: min API 21, includes recipes (hostpython3, libffi, openssl, sdl2_image, sdl2_mixer, sdl2_ttf, sqlite3, python3, sdl2, setuptools, six, pyjnius, android, kivy, certifi), built for archs (arm64-v8a, armeabi-v7a)
[INFO]: pong has compatible recipes, using this one
[INFO]: Of the existing distributions, the following meet the given requirements:
[INFO]: pong: min API 21, includes recipes (hostpython3, libffi, openssl, sdl2_image, sdl2_mixer, sdl2_ttf, sqlite3, python3, sdl2, setuptools, six, pyjnius, android, kivy, certifi), built for archs (arm64-v8a, armeabi-v7a)
[INFO]: pong has compatible recipes, using this one
[INFO]: -> directory context /home/user/Projekte/Python/ExPong/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/bootstrap_builds/sdl2
[INFO]: <- directory context /home/user/Projekte/Python/ExPong/.buildozer/android/platform/python-for-android
[INFO]: -> directory context /home/user/Projekte/Python/ExPong/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/pong
[INFO]: Detected highest available build tools version to be 33.0.0
[DEBUG]: -> running gradlew assembleDebug
[DEBUG]: Starting a Gradle Daemon (subsequent builds will be faster)
[DEBUG]:
[DEBUG]: FAILURE: Build failed with an exception.
[DEBUG]:
[DEBUG]: * Where:
[DEBUG]: Build file '/home/user/Projekte/Python/ExPong/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/pong/build.gradle'
[DEBUG]:
[DEBUG]: * What went wrong:
[DEBUG]: Could not compile build file '/home/user/Projekte/Python/ExPong/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/pong/build.gradle'.
[DEBUG]: > startup failed:
[DEBUG]: General error during conversion: Unsupported class file major version 63
[DEBUG]:
[DEBUG]: java.lang.IllegalArgumentException: Unsupported class file major version 63
[DEBUG]: at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:199)
[...]
[DEBUG]: at java.base/java.lang.Thread.run(Thread.java:1589)
[DEBUG]:
[DEBUG]: 1 error
[DEBUG]:
[DEBUG]:
[DEBUG]: * Try:
[DEBUG]: > Run with --stacktrace option to get the stack trace.
[DEBUG]: > Run with --info or --debug option to get more log output.
[DEBUG]: > Run with --scan to get full insights.
[DEBUG]:
[DEBUG]: * Get more help at https://help.gradle.org
[DEBUG]:
[DEBUG]: BUILD FAILED in 3s

Exception in thread background thread for pid 10812:
Traceback (most recent call last):
File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
self.run()
File "/usr/lib/python3.10/threading.py", line 953, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python3.10/site-packages/sh.py", line 1641, in wrap
fn(*rgs, **kwargs)
File "/usr/lib/python3.10/site-packages/sh.py", line 2569, in background_thread
handle_exit_code(exit_code)
File "/usr/lib/python3.10/site-packages/sh.py", line 2269, in fn
return self.command.handle_command_exit_code(exit_code)
File "/usr/lib/python3.10/site-packages/sh.py", line 869, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_1:

RAN: /home/user/Projekte/Python/ExPong/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/pong/gradlew assembleDebug

STDOUT:
Starting a Gradle Daemon (subsequent builds will be faster)

FAILURE: Build failed with an exception.

* Where:
Build file '/home/user/Projekte/Python/ExPong/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/pong/build.gradle'

* What went wrong:
Could not compile build file '/home/user/Projekte/Python/ExPong/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/pong/build.gradle'.
General error during conversion: Unsupported class file major version 63

java.lang.IllegalArgumentException: Unsupported class file major version 63
at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:199)
[...]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)

1 error


* Try:
Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s


STDERR:

[INFO]: STDOUT (last 20 lines of 259):
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)

1 error


* Try:
Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s

[INFO]: STDERR:

[INFO]: ENV:
export SHELL='/usr/bin/zsh'
export COLORTERM='truecolor'
export XDG_SESSION_PATH='/org/freedesktop/DisplayManager/Session0'
export TERM_PROGRAM_VERSION='1.73.1'
export DOTNET_ROOT='/usr/share/dotnet'
export GRADLE_HOME='/usr/share/java/gradle'
export DESKTOP_SESSION='qtile'
export ANDROIDAPI='27'
export NO_AT_BRIDGE='1'
export GTK_MODULES='canberra-gtk-module'
export XDG_SEAT='seat0'
export PWD='/home/user/Projekte/Python/ExPong/.buildozer/android/platform/python-for-android'
export PACKAGES_PATH='/home/user/.buildozer/android/packages'
export LOGNAME='user'
export XDG_SESSION_DESKTOP='qtile'
export XDG_SESSION_TYPE='x11'
export ANDROIDNDK='/home/user/.buildozer/android/platform/android-ndk-r23b'
export _='/usr/bin/python'
export XAUTHORITY='/home/user/.Xauthority'
export VSCODE_GIT_ASKPASS_NODE='/opt/visual-studio-code/code'
export XDG_GREETER_DATA_DIR='/var/lib/lightdm-data/user'
export MOTD_SHOWN='pam'
export HOME='/home/user'
export LANG='de_DE.UTF-8'
export GIT_ASKPASS='/opt/visual-studio-code/resources/app/extensions/git/dist/askpass.sh'
export XDG_SEAT_PATH='/org/freedesktop/DisplayManager/Seat0'
export DOTNET_BUNDLE_EXTRACT_BASE_DIR='/home/user/.cache/dotnet_bundle_extract'
export CHROME_DESKTOP='code-url-handler.desktop'
export VSCODE_GIT_ASKPASS_EXTRA_ARGS='--ms-enable-electron-run-as-node'
export XDG_SESSION_CLASS='user'
export TERM='xterm-256color'
export USER='user'
export VSCODE_GIT_IPC_HANDLE='/run/user/1000/vscode-git-9c4b089f4e.sock'
export ANDROIDMINAPI='21'
export DISPLAY=':0'
export SHLVL='3'
export XDG_VTNR='7'
export XDG_SESSION_ID='2'
export XDG_RUNTIME_DIR='/run/user/1000'
export ANDROIDSDK='/home/user/.buildozer/android/platform/android-sdk'
export VSCODE_GIT_ASKPASS_MAIN='/opt/visual-studio-code/resources/app/extensions/git/dist/askpass-main.js'
export XDG_DATA_DIRS='/home/user/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share'
export GDK_BACKEND='x11'
export PATH='/home/user/.buildozer/android/platform/apache-ant-1.9.4/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/home/user/.dotnet/tools:/home/user/.local/share/flatpak/exports/bin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/user/.local/bin/'
export GDMSESSION='qtile'
export ORIGINAL_XDG_CURRENT_DESKTOP='undefined'
export DBUS_SESSION_BUS_ADDRESS='unix:path=/run/user/1000/bus'
export MAIL='/var/spool/mail/user'
export TERM_PROGRAM='vscode'
export ANDROID_NDK_HOME='/home/user/.buildozer/android/platform/android-ndk-r23b'
export ANDROID_HOME='/home/user/.buildozer/android/platform/android-sdk'

[INFO]: COMMAND:
cd /home/user/Projekte/Python/ExPong/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/pong && /home/user/Projekte/Python/ExPong/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/pong/gradlew assembleDebug

[WARNING]: ERROR: /home/user/Projekte/Python/ExPong/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/pong/gradlew failed!
[user@asgard ExPong]

… hab schon einiges gekürzt. Hoffe es war nicht zu viel.

Offensichtlich hat er Probleme mit Java. Natürlich hab ich OpenJDK installiert. Eben so dieses Gradle, welches hier einen Fail wirft.

Hatte gestern offenbar viel Zeit zu verschenken… 😥 und bin in dieser buildozer.spec Datei diverse Einstellungen durchgegangen und hab verschiedene API und SDK Versionen ausprobiert oder hab die Requirements spezifiziert.

Am Ende wollte ich „nur noch“ eine einfache Hallo-Welt-App umwandeln.

Am Ende gibt es noch sicher die Möglichkeit, das ganze in einer Ubuntu-VM zu realisieren, aber eigentlich bin ich davon nicht richtig begeistert…

Da sowohl Kivy als auch Buildozer im AUR zu finden und aktuell sind, muss das ganze doch auch unter Arch funktionieren!?
 
Zuletzt bearbeitet:
madmax2010 schrieb:
zeig doch mal eine entsprechende anleitung

Diese Pakete habe ich installiert:
yay -S python-buildozer python-kivy android-sdk android-sdk-build-tools ncurses5-compat-libs

sudo pacman -S gradle libtool libffi jdk-openjdk git zip unzip autoconf pkgconf zlib ncurses gradle cmake openssl cython

Dabei bin ich u.a. nach diesen Anleitungen vorgegangen:
https://kivy.org/doc/stable/installation/installation-linux.html
https://kivy.org/doc/stable/guide/packaging-android.html
https://buildozer.readthedocs.io/en/latest/installation.html#android-on-ubuntu-20-04-and-22-04-64bit

Wie gesagt, mein Code läuft als Py-script ohne Probleme durch.
Lediglich die Umwandlung scheitert.
 
Gleich am Anfang passt ja schon was nicht:

/bin/sh: Zeile 1: dpkg: Kommando nicht gefunden.

Zu Not würde ich das ganze einfach in einem Ubuntu Container bauen lassen. Ist manchmal einfacher, als Stunden lang zu versuchen das auf ein System zu migrieren, was nicht offiziell unterstützt ist.
 
jb_alvarado schrieb:
Gleich am Anfang passt ja schon was nicht:
Das mir das nicht aufgefallen ist... ist eine typischer Fehler...

ABER: er wirft immer noch den selben Fehler.

jb_alvarado schrieb:
Zu Not würde ich das ganze einfach in einem Ubuntu Container bauen lassen

Werd mich jetzt auch dran setzten und einen bauen. Dennoch nagt das ganze doch wirklich, das ich das nicht auf unter Arch ans laufen bekomme.

Warum soll Kivy/Android nur unter Debian und co. anständig laufen?
Ist das tatsächlich so ein Nischenthema?
 
Zurück
Oben