Seite 1 von 2

kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 14:20
von MupfSpace
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.

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 14:49
von sparrow
Buildozer baut nicht unter 32bit Linux.

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 15:13
von MupfSpace
Ich Hab aber 64 bit:

Code: Alles auswählen

adrian@adrian-desktop:~$ getconf LONG_BIT
64

Was kann ich tun?

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 15:21
von __blackjack__
Das sieht nach einem ARM-Linux aus, es wird aber das Android-NDK für x86 heruntergeladen – muss das so?

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 15:25
von MupfSpace
Was meinst du mit -muss das so? ?

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 15:28
von __blackjack__
@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?

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 15:30
von MupfSpace
Das ndk existiert nicht dort wo es heruntergeladen werden soll.

Wenn ich die url in einem Webbrowser eingebe steht da not found.

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 15:52
von sparrow
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.

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 16:01
von MupfSpace
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?

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 16:10
von __deets__
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.

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 16:59
von MupfSpace
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?

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 17:35
von __deets__
Das musst du dann doch gar nicht selbst abgeben. Wofür also diese Frage klären?

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 18:23
von MupfSpace
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?

Re: kivy buildozer

Verfasst: Sonntag 9. Juni 2019, 19:12
von __deets__
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.

Re: kivy buildozer

Verfasst: Dienstag 11. Juni 2019, 12:19
von MupfSpace
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?

Re: kivy buildozer

Verfasst: Dienstag 11. Juni 2019, 12:29
von sparrow
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?

Re: kivy buildozer

Verfasst: Dienstag 11. Juni 2019, 13:12
von MupfSpace
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

Re: kivy buildozer

Verfasst: Dienstag 11. Juni 2019, 13:59
von __deets__
Da steht aber auch warum. Er findet etwas nicht. Schau mal genau hin.

Re: kivy buildozer

Verfasst: Mittwoch 12. Juni 2019, 09:49
von MupfSpace
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



Re: kivy buildozer

Verfasst: Mittwoch 12. Juni 2019, 10:07
von sparrow
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.