kivy buildozer

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

Hallo,
ich wollte eine App mit buildozer zu einer Android APK machen.
und bekomme diesen Fehler:

Code: Alles auswählen


# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Read available permissions from api-versions.xml
# Preparing build
# Check requirements for android
# Run 'dpkg --version'
# Cwd None
Debian »dpkg« Paketmanagement-Programm Version 1.19.0.5 (arm64).
Dies ist freie Software; lesen Sie die GNU General Public License in der
Version 2 oder höher für Kopierbedingungen. Es wird KEINE Haftung übernommen.
# Search for Git (git)
#  -> found at /usr/bin/git
# Search for Cython (cython)
#  -> found at /home/adrian/.local/bin/cython
# Search for Java compiler (javac)
#  -> found at /usr/lib/jvm/java-11-openjdk-arm64/bin/javac
# Search for Java keytool (keytool)
#  -> found at /usr/lib/jvm/java-11-openjdk-arm64/bin/keytool
# Install platform
# Run '/usr/bin/python3 -m pip install -q --user \'appdirs\' \'colorama>=0.3.3\' \'jinja2\' \'six\' \'enum34; python_version<"3.4"\' \'sh>=1.10; sys_platform!="nt"\' \'pep517\' \'pytoml\' \'virtualenv\''
# Cwd None
# Apache ANT found at /home/adrian/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK found at /home/adrian/.buildozer/android/platform/android-sdk
# Android NDK is missing, downloading
# Downloading https://dl.google.com/android/repository/android-ndk-r17c-linux-x86.zip
Traceback (most recent call last):
  File "/home/adrian/.local/bin/buildozer", line 11, in <module>
    sys.exit(main())
  File "/home/adrian/.local/lib/python3.6/site-packages/buildozer/scripts/client.py", line 13, in main
    Buildozer().run_command(sys.argv[1:])
  File "/home/adrian/.local/lib/python3.6/site-packages/buildozer/__init__.py", line 1044, in run_command
    self.target.run_commands(args)
  File "/home/adrian/.local/lib/python3.6/site-packages/buildozer/target.py", line 92, in run_commands
    func(args)
  File "/home/adrian/.local/lib/python3.6/site-packages/buildozer/target.py", line 102, in cmd_debug
    self.buildozer.prepare_for_build()
  File "/home/adrian/.local/lib/python3.6/site-packages/buildozer/__init__.py", line 178, in prepare_for_build
    self.target.install_platform()
  File "/home/adrian/.local/lib/python3.6/site-packages/buildozer/targets/android.py", line 611, in install_platform
    self._install_android_ndk()
  File "/home/adrian/.local/lib/python3.6/site-packages/buildozer/targets/android.py", line 395, in _install_android_ndk
    cwd=self.buildozer.global_platform_dir)
  File "/home/adrian/.local/lib/python3.6/site-packages/buildozer/__init__.py", line 689, in download
    urlretrieve(url, filename, report_hook)
  File "/usr/lib/python3.6/urllib/request.py", line 1819, in retrieve
    block = fp.read(bs)
  File "/usr/lib/python3.6/tempfile.py", line 624, in func_wrapper
    return func(*args, **kwargs)
ValueError: read of closed file


was kann ich dagegen tun?
ich habe gemerkt das ich die datei auch nicht manuel enpacken kann.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Buildozer baut nicht unter 32bit Linux.
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

Ich Hab aber 64 bit:

Code: Alles auswählen

adrian@adrian-desktop:~$ getconf LONG_BIT
64

Was kann ich tun?
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Das sieht nach einem ARM-Linux aus, es wird aber das Android-NDK für x86 heruntergeladen – muss das so?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

Was meinst du mit -muss das so? ?
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@MupfSpace: Ist das richtig? Funktioniert das was buildozer mit diesem NDK machen will obwohl das NDK nicht zum System passt auf dem das läuft?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

Das ndk existiert nicht dort wo es heruntergeladen werden soll.

Wenn ich die url in einem Webbrowser eingebe steht da not found.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Dann solltest du dich an die Entwickler von buildozer wenden. Das NDK existiert nicht, weil man hier sieht, für welche Architekturen es zur Verfügung steht. Normalerweise tritt der von dir beschriebene Fehler auf, wenn man versucht unter einem 32bit Linux etwas zu bauen. Möglicherweise aber auch, wenn man eine nicht unterstützte Architektur verwendet. Ich nehme an, dass hier uname -i ausgewertet wird.

Du musst also klären, ob buildozer unter arm64 überhaupt funktioniert.
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

Kann ich auch manuell ein ndk herunterladen?
In der buildozer.spec
Gibt es eine Zeile in der man einen Pfad angeben kann wo das ndk liegt.

Aber soll es dort dann schon entpackt sein oder noch als zip?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das bringt nichts. Das NDK ist im Grunde eine cross compilation toolchain. Die muss auf dem System laufen, auf dem du buildozer laufen lässt. Es scheint sie aber nicht zu geben für ARM. Es gibt das nur für Intel - auf Windows, Mac & Linux. Du musst da ms also auf einem normalen PC ausführen.
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

Okay, angekommen ich hätte kein arm sondern etwas das funktioniert.

Müsste ich dann den Pfad für das ndk als zip oder als ordner angeben?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das musst du dann doch gar nicht selbst abgeben. Wofür also diese Frage klären?
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

Aber man kann doch einen Pfad angeben.
Müsste das dann entpackt sein oder als zip?

Und wenn arm nicht geht. Was brauche ich dann?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Habe ich dir doch gesagt: ein Intel PC. Und nochmal: dann wird das automatisch runter geladen. Warum also willst du das wissen? Wenn es dich interessiert - Probier doch einfach beides aus.
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

okay in der virtuellen Maschine wird das NDK heruntergeladen.

jetzt bekomme ich aber diesen Fehler:

Code: Alles auswählen

Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/adrian/.local/lib/python2.7/site-packages/sh.py", line 1540, in wrap
    fn(*args, **kwargs)
  File "/home/adrian/.local/lib/python2.7/site-packages/sh.py", line 2459, in background_thread
    handle_exit_code(exit_code)
  File "/home/adrian/.local/lib/python2.7/site-packages/sh.py", line 2157, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/home/adrian/.local/lib/python2.7/site-packages/sh.py", line 815, in handle_command_exit_code
    raise exc
ErrorReturnCode_127:

  RAN: /home/adrian/TestApp/.buildozer/android/platform/build/build/other_builds/libffi/armeabi-v7a__ndk_target_21/libffi/autogen.sh

  STDOUT:
/home/adrian/TestApp/.buildozer/android/platform/build/build/other_builds/libffi/armeabi-v7a__ndk_target_21/libffi/autogen.sh: 2: exec: autoreconf: not found


  STDERR:


Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/adrian/TestApp/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 1186, in <module>
    main()
  File "/home/adrian/TestApp/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 1180, in main
    ToolchainCL()
  File "/home/adrian/TestApp/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 663, in __init__
    getattr(self, args.subparser_name.replace('-', '_'))(args)
  File "/home/adrian/TestApp/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 152, in wrapper_func
    build_dist_from_args(ctx, dist, args)
  File "/home/adrian/TestApp/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 205, in build_dist_from_args
    args, "ignore_setup_py", False
  File "pythonforandroid/build.py", line 555, in build_recipes
  File "/home/adrian/TestApp/.buildozer/android/platform/python-for-android/pythonforandroid/recipes/libffi/__init__.py", line 33, in build_arch
    shprint(sh.Command('./autogen.sh'), _env=env)
  File "pythonforandroid/logger.py", line 178, in shprint
  File "/home/adrian/.local/lib/python2.7/site-packages/sh.py", line 863, in next
    self.wait()
  File "/home/adrian/.local/lib/python2.7/site-packages/sh.py", line 792, in wait
    self.handle_command_exit_code(exit_code)
  File "/home/adrian/.local/lib/python2.7/site-packages/sh.py", line 815, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_127:

  RAN: /home/adrian/TestApp/.buildozer/android/platform/build/build/other_builds/libffi/armeabi-v7a__ndk_target_21/libffi/autogen.sh

  STDOUT:
/home/adrian/TestApp/.buildozer/android/platform/build/build/other_builds/libffi/armeabi-v7a__ndk_target_21/libffi/autogen.sh: 2: exec: autoreconf: not found


  STDERR:

# Command failed: /usr/bin/python -m pythonforandroid.toolchain create --dist_name=myapp --bootstrap=sdl2 --requirements=python3,kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/adrian/TestApp/.buildozer/android/platform/build" --ndk-api=21
# ENVIRONMENT:
#     LESSOPEN = '| /usr/bin/lesspipe %s'
#     XDG_SESSION_TYPE = 'tty'
#     SSH_CLIENT = '192.205.174.23 49866 22'
#     LOGNAME = 'adrian'
#     USER = 'adrian'
#     HOME = '/home/adrian'
#     PATH = '/home/adrian/.buildozer/android/platform/apache-ant-1.9.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'
#     LANG = 'de_DE.UTF-8'
#     TERM = 'xterm'
#     SHELL = '/bin/bash'
#     ANDROIDMINAPI = '21'
#     PACKAGES_PATH = '/home/adrian/.buildozer/android/packages'
#     SHLVL = '1'
#     XDG_SESSION_CLASS = 'user'
#     XDG_RUNTIME_DIR = '/run/user/1000'
#     ANDROIDSDK = '/home/adrian/.buildozer/android/platform/android-sdk'
#     XDG_SESSION_ID = '3'
#     DBUS_SESSION_BUS_ADDRESS = 'unix:path=/run/user/1000/bus'
#     _ = '/usr/local/bin/buildozer'
#     SSH_CONNECTION = '192.205.174.23 49866 192.205.174.33 22'
#     LESSCLOSE = '/usr/bin/lesspipe %s %s'
#     GTK_MODULES = 'appmenu-gtk-module'
#     UBUNTU_MENUPROXY = '1'
#     SSH_TTY = '/dev/pts/1'
#     OLDPWD = '/home/adrian'
#     ANDROIDNDK = '/home/adrian/.buildozer/android/platform/android-ndk-r17c'
#     XDG_DATA_DIRS = '/usr/local/share:/usr/share:/var/lib/snapd/desktop'
#     PWD = '/home/adrian/TestApp'
#     ANDROIDAPI = '27'
#     MAIL = '/var/mail/adrian'
#     LS_COLORS = 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'
#
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2



was kann ich dagegen tun?
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Zeig doch mal ein bisschen Eigeninitiative.
Bevor du hier wirklich jeden Fehler einzeln anfragst, frag doch vorher mal eine Suchmaschine. Das gehört doch auch zum Entwickeln dazu. Probleme erkennen und ausräumen.
Was sagt die Fehlermeldung?
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

sparrow hat geschrieben: Dienstag 11. Juni 2019, 12:29 Was sagt die Fehlermeldung?
die Fehler meldung sagt, dass der befehl

Code: Alles auswählen

 /usr/bin/python -m pythonforandroid.toolchain create --dist_name=myapp --bootstrap=sdl2 --requirements=python3,kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/adrian/TestApp/.buildozer/android/platform/build" --ndk-api=21

irgendwie schiefgelaufen ist.

Code: Alles auswählen

# Command failed: /usr/bin/python -m pythonforandroid.toolchain create --dist_name=myapp --bootstrap=sdl2 --requirements=python3,kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/adrian/TestApp/.buildozer/android/platform/build" --ndk-api=21
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Da steht aber auch warum. Er findet etwas nicht. Schau mal genau hin.
MupfSpace
User
Beiträge: 169
Registriert: Montag 25. Dezember 2017, 20:26

Aha.
Er findet diese datei nicht

Code: Alles auswählen

/home/adrian/TestApp/.buildozer/android/platform/build/build/other_builds/libffi/armeabi-v7a__ndk_target_21/libffi/autogen.sh

Code: Alles auswählen

  STDOUT:
/home/adrian/TestApp/.buildozer/android/platform/build/build/other_builds/libffi/armeabi-v7a__ndk_target_21/libffi/autogen.sh: 2: exec: autoreconf: not found


Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Die "autogen.sh" findet er schon. Und die bricht dann in Zeile 2 ab, weil er etwas nicht findet.
Und wenn du das entweder direkt installierst (der vorher googelst wie das Paket heißt) sollte sich das Problem erledigt haben.
Antworten