My app worked, then I did a 'buildozer appclean', now it does not work!

1,000 views
Skip to first unread message

Henrik R.

unread,
Aug 29, 2023, 12:57:39 PM8/29/23
to Kivy users support
Hi!

I have a Python-Kivy app which is in Open Testing on Android on the Google Play Store. It's called GeoESP Training. The last time I compiled it and uploaded it was as an AAB-file in April 2022.
But now Google demand that I compile to API 33, so I changed from 'android.api = 30' to 'android.api = 33' in the buildozer.spec file (plus a new app version number there and in the 'main.py').
This compilation worked immediately in debug mode on my Android phone - via USB.

Here are the commands I did in Terminal:

h@hr:~$ cd /mnt/4AF15A0435E762B4/mypython/GeoESP-android/
h@hr:/mnt/4AF15A0435E762B4/mypython/GeoESP-android$ buildozer distclean
# Check configuration tokens
Warning: Your ndk, sdk and all other cached packages will be removed. Continue? (y/n)
y
# Clean the global build directory
h@hr:/mnt/4AF15A0435E762B4/mypython/GeoESP-android$ buildozer android clean
# Check configuration tokens
# Ensure build layout
# Check configuration tokens
h@hr:/mnt/4AF15A0435E762B4/mypython/GeoESP-android$ cd /mnt/4AF15A0435E762B4/mypython/GeoESP/
h@hr:/mnt/4AF15A0435E762B4/mypython/GeoESP$ source venv/bin/activate
(venv) h@hr:/mnt/4AF15A0435E762B4/mypython/GeoESP$ cd /mnt/4AF15A0435E762B4/mypython/GeoESP-android/
(venv) h@hr:/mnt/4AF15A0435E762B4/mypython/GeoESP-android$ export P4A_RELEASE_KEYSTORE=~/keystores/geo-esp-key5.keystore
(venv) h@hr:/mnt/4AF15A0435E762B4/mypython/GeoESP-android$ export P4A_RELEASE_KEYSTORE_PASSWD="xxxx"
(venv) h@hr:/mnt/4AF15A0435E762B4/mypython/GeoESP-android$ export P4A_RELEASE_KEYALIAS_PASSWD="xxxx"
(venv) h@hr:/mnt/4AF15A0435E762B4/mypython/GeoESP-android$ export P4A_RELEASE_KEYALIAS=geo-esp-key5-alias
(venv) h@hr:/mnt/4AF15A0435E762B4/mypython/GeoESP-android$ buildozer android debug deploy run

((Here I have deleted most of the log output))

# Build the application #2
# Package the application
# Gradle project detected, copy files /mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/dists/geoesptraining/src/main/java
# Android packaging done!
# APK geoesptraining-0.8.8-armeabi-v7a_arm64-v8a-debug.apk available in the bin directory
# Deploy on ZY3224R37X
# Application pushed.
# Run on ZY3224R37X
# Application started.

It worked perfectly. I also checked it with: 'adb logcat | grep -w "python"'

Now I probably just could have compiled a release AAB-file and uploaded it on the Google Play Store, but for some strange reason I did a BIG mistake:

(venv) h@hr:/mnt/4AF15A0435E762B4/mypython/GeoESP-android$ buildozer appclean

After that 'buildozer android debug deploy run' did NOT run. I got this error message from 'adb':

Traceback (most recent call last):
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/app/main.py", line 18, in <module>
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/python-installs/geoesptraining/armeabi-v7a/fluent/runtime/__init__.py", line 1, in <module>
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/python-installs/geoesptraining/armeabi-v7a/fluent/syntax/__init__.py", line 5, in <module>
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/python-installs/geoesptraining/armeabi-v7a/fluent/syntax/parser.py", line 4, in <module>
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/python-installs/geoesptraining/armeabi-v7a/fluent/syntax/stream.py", line 2, in <module>
ModuleNotFoundError: No module named 'typing_extensions'

Now I tried 'buildozer appclean' again, just to discover that I was now on a newer buildozer version, where 'orientation = all' had to be changed to 'orientation = portrait,landscape'.

Now I probably did another mistake...: 

I tried to upgrade all the packages in the (venv), which by the way is Python 3.8. From now on I could not even compile... :-(

Note that I have the following settings in buildozer.spec:

# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
# requirements = python3,kivy
# April 2022: Note that TouchTracer works in Kivy v. 2.0.0 but not in v. 2.1.0! Was it because I used API 27 and not API 30?
requirements = python3,kivy==2.0.0,docutils,fluent.runtime,babel,fluent.syntax,attrs,plyer

# (list) Gradle dependencies to add
#android.gradle_dependencies =
android.gradle_dependencies = "com.android.support:support-core-utils:27.0.0"

# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
#p4a.source_dir =
# April 2022: I updated the content of the dir to the newest p4a 'master':
p4a.source_dir = /mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/

This is the significant (last) part of the last log output from 'buildozer android debug deploy run':

/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/toolchain.py:59: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
  if LooseVersion(cur_ver) < LooseVersion(version):
# Check application requirements
# Compile platform
# Run ['/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/bin/python', '-m', 'pythonforandroid.toolchain', 'create', '--dist_name=geoesptraining', '--bootstrap=sdl2', '--requirements=python3,kivy==2.0.0,docutils,fluent.runtime,babel,fluent.syntax,attrs,plyer', '--arch=armeabi-v7a', '--arch=arm64-v8a', '--copy-libs', '--color=always', '--storage-dir=/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a', '--ndk-api=21', '--ignore-setup-py', '--debug']
# Cwd /mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/
/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/toolchain.py:59: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
  if LooseVersion(cur_ver) < LooseVersion(version):
[INFO]:    Recipe kivy: version "2.0.0" requested
[INFO]:    Will compile for the following archs: armeabi-v7a, arm64-v8a
[INFO]:    Found Android API target in $ANDROIDAPI: 33
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/toolchain.py", line 1294, in <module>
    main()
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/entrypoints.py", line 18, in main
    ToolchainCL()
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/toolchain.py", line 728, in __init__
    getattr(self, command)(args)
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/toolchain.py", line 141, in wrapper_func
    ctx.prepare_build_environment(user_sdk_dir=self.sdk_dir,
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/build.py", line 358, in prepare_build_environment
    apis = get_available_apis(self.sdk_dir)
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/build.py", line 130, in get_available_apis
    targets = get_targets(sdk_dir)
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/build.py", line 118, in get_targets
    targets = avdmanager('list', 'target').stdout.decode('utf-8').split('\n')
AttributeError: 'str' object has no attribute 'stdout'
# Command failed: ['/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/bin/python', '-m', 'pythonforandroid.toolchain', 'create', '--dist_name=geoesptraining', '--bootstrap=sdl2', '--requirements=python3,kivy==2.0.0,docutils,fluent.runtime,babel,fluent.syntax,attrs,plyer', '--arch=armeabi-v7a', '--arch=arm64-v8a', '--copy-libs', '--color=always', '--storage-dir=/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a', '--ndk-api=21', '--ignore-setup-py', '--debug']
# ENVIRONMENT:
#     SHELL = '/bin/bash'
#     SESSION_MANAGER = 'local/henrik-thinkpad-20-04:@/tmp/.ICE-unix/2457,unix/henrik-thinkpad-20-04:/tmp/.ICE-unix/2457'
#     QT_ACCESSIBILITY = '1'
#     P4A_RELEASE_KEYSTORE_PASSWD = 'xxxx'
#     COLORTERM = 'truecolor'
#     XDG_CONFIG_DIRS = '/etc/xdg/xdg-ubuntu:/etc/xdg'
#     XDG_MENU_PREFIX = 'gnome-'
#     GNOME_DESKTOP_SESSION_ID = 'this-is-deprecated'
#     LANGUAGE = 'en_GB:en'
#     LC_ADDRESS = 'en_DK.UTF-8'
#     GNOME_SHELL_SESSION_MODE = 'ubuntu'
#     LC_NAME = 'en_DK.UTF-8'
#     SSH_AUTH_SOCK = '/run/user/1000/keyring/ssh'
#     P4A_RELEASE_KEYALIAS = 'geo-esp-key5-alias'
#     XMODIFIERS = '@im=ibus'
#     DESKTOP_SESSION = 'ubuntu'
#     LC_MONETARY = 'en_DK.UTF-8'
#     SSH_AGENT_PID = '2413'
#     GTK_MODULES = 'gail:atk-bridge'
#     PWD = '/mnt/4AF15A0435E762B4/mypython/GeoESP-android'
#     LOGNAME = 'henrik'
#     XDG_SESSION_DESKTOP = 'ubuntu'
#     XDG_SESSION_TYPE = 'x11'
#     GPG_AGENT_INFO = '/run/user/1000/gnupg/S.gpg-agent:0:1'
#     P4A_RELEASE_KEYALIAS_PASSWD = 'xxxx'
#     XAUTHORITY = '/run/user/1000/gdm/Xauthority'
#     GJS_DEBUG_TOPICS = 'JS ERROR;JS LOG'
#     WINDOWPATH = '2'
#     HOME = '/home/henrik'
#     USERNAME = 'henrik'
#     IM_CONFIG_PHASE = '1'
#     LC_PAPER = 'en_DK.UTF-8'
#     LANG = 'en_GB.UTF-8'
#     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:'
#     XDG_CURRENT_DESKTOP = 'ubuntu:GNOME'
#     VIRTUAL_ENV = '/mnt/4AF15A0435E762B4/mypython/GeoESP/venv'
#     VTE_VERSION = '6003'
#     GNOME_TERMINAL_SCREEN = '/org/gnome/Terminal/screen/fbdd66d2_9b43_46d0_8e71_e57e7db81d65'
#     INVOCATION_ID = '278f5d3938ac45449e167258f0f18e2e'
#     MANAGERPID = '2233'
#     GJS_DEBUG_OUTPUT = 'stderr'
#     LESSCLOSE = '/usr/bin/lesspipe %s %s'
#     XDG_SESSION_CLASS = 'user'
#     TERM = 'xterm-256color'
#     LC_IDENTIFICATION = 'en_DK.UTF-8'
#     P4A_RELEASE_KEYSTORE = '/home/henrik/keystores/geo-esp-key5.keystore'
#     LESSOPEN = '| /usr/bin/lesspipe %s'
#     USER = 'henrik'
#     GNOME_TERMINAL_SERVICE = ':1.4138'
#     DISPLAY = ':0'
#     SHLVL = '1'
#     LC_TELEPHONE = 'en_DK.UTF-8'
#     QT_IM_MODULE = 'ibus'
#     LC_MEASUREMENT = 'en_DK.UTF-8'
#     PAPERSIZE = 'a4'
#     XDG_RUNTIME_DIR = '/run/user/1000'
#     PS1 = ('(venv) \\[\\e]0;\\u@\\h: '
 '\\w\\a\\]${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ ')
#     LC_TIME = 'en_DK.UTF-8'
#     JOURNAL_STREAM = '8:57126'
#     XDG_DATA_DIRS = '/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop'
#     PATH = '/home/henrik/.buildozer/android/platform/apache-ant-1.9.4/bin:/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/bin:/home/henrik/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/henrik/.local/bin/'
#     GDMSESSION = 'ubuntu'
#     DBUS_SESSION_BUS_ADDRESS = 'unix:path=/run/user/1000/bus'
#     LC_NUMERIC = 'en_DK.UTF-8'
#     OLDPWD = '/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/lib/python3.8/site-packages'
#     _ = '/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/bin/buildozer'
#     PACKAGES_PATH = '/home/henrik/.buildozer/android/packages'
#     ANDROIDSDK = '/home/henrik/.buildozer/android/platform/android-sdk'
#     ANDROIDNDK = '/home/henrik/.buildozer/android/platform/android-ndk-r19c'
#     ANDROIDAPI = '33'
#     ANDROIDMINAPI = '21'
#
# 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

PS: In all the above, my app signing key passwords are "xxxx". That is not the correct password...

I look forward to hear from anyone who can help me out of this mess I have created... Thank you!


Henrik R.

Robert

unread,
Aug 29, 2023, 5:36:04 PM8/29/23
to Kivy users support
Hi Hendrick.

Its hard to tease apart the issues here, but I suspect there are two:

1)
File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/python-installs/geoesptraining/armeabi-v7a/fluent/syntax/stream.py", line 2, in <module>
ModuleNotFoundError: No module named 'typing_extensions'

I'd guess this is a newer version of fluent that has typing_extensions as a dependency.

Add typing-extensions to requirements, or pin fluent to what ever version you used before. (and buildozer appclean)

2)

File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/build.py", line 118, in get_targets
    targets = avdmanager('list', 'target').stdout.decode('utf-8').split('\n')
AttributeError: 'str' object has no attribute 'stdout'

I don't know. I'd guess your custom p4a is probably obsolete, I emphasize guess.
I don't know what to suggest, my preconception is always use the latest stable version.
That would mean merging your customization into the current p4a, and I don't know how hard that would be.


Henrik R.

unread,
Aug 30, 2023, 2:51:16 PM8/30/23
to Kivy users support
Thank you very much!

1. I upgraded to the newest python-for-android-master.
2. I inserted 'typing_extensions' in buildozer.spec - requirements
3. Ran 'buildozer appclean'
4. Ran 'buildozer android debug deploy run'

Now it seems to go much further.

I get a lot of warnings like this:

[DEBUG]:   armv7a-linux-androideabi21-clang  -I. -Iinclude -fPIC -pthread -target armv7a-linux-androideabi21 -fomit-frame-pointer -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb -fPIC -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSLDIR="\"/usr/local/ssl\"" -DENGINESDIR="\"/usr/local/lib/engines-1.1\"" -DNDEBUG -D__ANDROID_API__=21 -DANDROID -I/home/henrik/.buildozer/android/platform/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include -I/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/python-installs/geoesptraining/armeabi-v7a/include/python3.1 -MMD -MF crypto/aes/aes_ofb.d.tmp -MT crypto/aes/aes_ofb.o -c -o crypto/aes/aes_ofb.o crypto/aes/aes_ofb.c
[DEBUG]:   In file included from <built-in>:386:
[DEBUG]:   <command line>:6:9: warning: '__ANDROID_API__' macro redefined [-Wmacro-redefined]
[DEBUG]:   #define __ANDROID_API__ 21
[DEBUG]:           ^
[DEBUG]:   <built-in>:379:9: note: previous definition is here
[DEBUG]:   #define __ANDROID_API__ __ANDROID_MIN_SDK_VERSION__
[DEBUG]:           ^
[DEBUG]:   1 warning generated.

Now, the last part of the log output looks like the following.
It seems to be "# Compile platform" that fails.
I hope you can decipher it. Thank you. :-) :

[INFO]:    <- directory context /mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master
[INFO]:    Building babel for armeabi-v7a
[INFO]:    babel apparently isn't already in site-packages
[INFO]:    Installing babel into site-packages
[INFO]:    -> directory context /mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel
[DEBUG]:   -> running python3 setup.py install -O2 --root=/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/python-installs/geoesptraining/armeabi-v7a --install-lib=.
[DEBUG]:   Traceback (most recent call last):
[DEBUG]:     File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/setup.py", line 13, in <module>
[DEBUG]:       from babel import __version__
[DEBUG]:     File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/babel/__init__.py", line 20, in <module>
[DEBUG]:       from babel.core import UnknownLocaleError, Locale, default_locale, \
[DEBUG]:     File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/babel/core.py", line 14, in <module>
[DEBUG]:       from babel import localedata
[DEBUG]:     File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/babel/localedata.py", line 17, in <module>
[DEBUG]:       from collections import MutableMapping
[DEBUG]:   ImportError: cannot import name 'MutableMapping' from 'collections' (/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/hostpython3/desktop/hostpython3/Lib/collections/__init__.py)
Exception in thread background thread for pid 520148:

Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/lib/python3.8/site-packages/sh.py", line 1641, in wrap
    fn(*rgs, **kwargs)
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/lib/python3.8/site-packages/sh.py", line 2569, in background_thread
    handle_exit_code(exit_code)
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/lib/python3.8/site-packages/sh.py", line 2269, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/lib/python3.8/site-packages/sh.py", line 869, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1:

  RAN: /mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 setup.py install -O2 --root=/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/python-installs/geoesptraining/armeabi-v7a --install-lib=.

  STDOUT:

Traceback (most recent call last):
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/setup.py", line 13, in <module>
    from babel import __version__
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/babel/__init__.py", line 20, in <module>
    from babel.core import UnknownLocaleError, Locale, default_locale, \
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/babel/core.py", line 14, in <module>
    from babel import localedata
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/babel/localedata.py", line 17, in <module>
    from collections import MutableMapping
ImportError: cannot import name 'MutableMapping' from 'collections' (/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/hostpython3/desktop/hostpython3/Lib/collections/__init__.py)


  STDERR:


Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/toolchain.py", line 1312, in <module>

    main()
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/entrypoints.py", line 18, in main
    ToolchainCL()
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/toolchain.py", line 734, in __init__
    getattr(self, command)(args)
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/toolchain.py", line 153, in wrapper_func
    build_dist_from_args(ctx, dist, args)
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/toolchain.py", line 212, in build_dist_from_args
    build_recipes(build_order, python_modules, ctx,
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/build.py", line 504, in build_recipes
    recipe.build_arch(arch)
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/recipe.py", line 934, in build_arch
    self.install_python_package(arch)
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/recipe.py", line 950, in install_python_package
    shprint(hostpython, 'setup.py', 'install', '-O2',
  File "/mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/pythonforandroid/logger.py", line 167, in shprint
    for line in output:
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/lib/python3.8/site-packages/sh.py", line 915, in next
    self.wait()
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/lib/python3.8/site-packages/sh.py", line 845, in wait
    self.handle_command_exit_code(exit_code)
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/lib/python3.8/site-packages/sh.py", line 869, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1:

  RAN: /mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 setup.py install -O2 --root=/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/python-installs/geoesptraining/armeabi-v7a --install-lib=.

  STDOUT:

Traceback (most recent call last):
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/setup.py", line 13, in <module>
    from babel import __version__
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/babel/__init__.py", line 20, in <module>
    from babel.core import UnknownLocaleError, Locale, default_locale, \
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/babel/core.py", line 14, in <module>
    from babel import localedata
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/babel/localedata.py", line 17, in <module>
    from collections import MutableMapping
ImportError: cannot import name 'MutableMapping' from 'collections' (/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/hostpython3/desktop/hostpython3/Lib/collections/__init__.py)


  STDERR:

# Command failed: ['/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/bin/python', '-m', 'pythonforandroid.toolchain', 'create', '--dist_name=geoesptraining', '--bootstrap=sdl2', '--requirements=python3,kivy==2.0.0,docutils,fluent.runtime,babel,fluent.syntax,attrs,plyer,typing_extensions', '--arch=armeabi-v7a', '--arch=arm64-v8a', '--copy-libs', '--color=always', '--storage-dir=/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a', '--ndk-api=21', '--ignore-setup-py', '--debug']
#     ANDROIDNDK = '/home/henrik/.buildozer/android/platform/android-ndk-r25b'

#     ANDROIDAPI = '33'
#     ANDROIDMINAPI = '21'
#
# 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

Robert

unread,
Aug 30, 2023, 7:12:50 PM8/30/23
to Kivy users support
> [DEBUG]:       from collections import MutableMapping
> [DEBUG]:   ImportError: cannot import name 'MutableMapping' from 'collections' (/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/hostpython3/desktop/hostpython3/Lib/collections/__init__.py)


That link says
from collections.abc import MutableMapping 

I have no idea if this is correct.

Henrik R.

unread,
Sep 1, 2023, 11:52:20 AM9/1/23
to Kivy users support
Great. Thank you! 

I changed "from collections import MutableMapping" to "from collections.abc import MutableMapping" in 2 files called "localedata.py". 
That seems to solve THAT. But there are still plenty of problems. There is a long list of errors that all look more or less like the following. What does that mean?:

[DEBUG]:   building 'kivy.armeabi-v7a__ndk_target_21.kivy.kivy.graphics.buffer' extension
[DEBUG]:   creating build/temp.linux-x86_64-3.10/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/kivy/armeabi-v7a__ndk_target_21/kivy/kivy/graphics
[DEBUG]:   /home/henrik/.buildozer/android/platform/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -target armv7a-linux-androideabi21 -fomit-frame-pointer -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb -fPIC -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -target armv7a-linux-androideabi21 -fomit-frame-pointer -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb -fPIC -I/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Include -DANDROID -I/home/henrik/.buildozer/android/platform/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include -I/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/python-installs/geoesptraining/armeabi-v7a/include/python3.1 -fPIC -I/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/kivy/armeabi-v7a__ndk_target_21/kivy/kivy/include -I/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/kivy/armeabi-v7a__ndk_target_21/kivy/kivy/include -I/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/hostpython3/desktop/hostpython3/Include -I/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/hostpython3/desktop/hostpython3/native-build -c /mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/kivy/armeabi-v7a__ndk_target_21/kivy/kivy/graphics/buffer.c -o build/temp.linux-x86_64-3.10/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/kivy/armeabi-v7a__ndk_target_21/kivy/kivy/graphics/buffer.o
[DEBUG]:   clang-14: error: no such file or directory: '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/kivy/armeabi-v7a__ndk_target_21/kivy/kivy/properties.c'
[DEBUG]:   clang-14: error: no input files

Robert

unread,
Sep 1, 2023, 12:54:09 PM9/1/23
to Kivy users support
No idea, maybe there is something further up?

A guess : check your Cython version compared to the one in the install instructions.

Henrik R.

unread,
Sep 1, 2023, 1:08:08 PM9/1/23
to Kivy users support
Could the problem be a 'mismatch' between the Python version of my 'venv' (Python 3.8), which was used when developing the app, and the Python version Buildozer uses now?
How do I check which exact versions the 2 use?

Robert

unread,
Sep 1, 2023, 5:13:42 PM9/1/23
to Kivy users support
Don't know, I don't use a venv.

berk berk

unread,
Sep 2, 2023, 7:20:40 AM9/2/23
to Kivy users support
https://buildozer.readthedocs.io/en/latest/installation.html i hope this instructions help. One time, I updated the buildozer but I used less cython virtualenv and jdk. I got some unmeaningful errors.
[Note: I'm using wsl-2 and ubuntu 20.04]
2 Eylül 2023 Cumartesi tarihinde saat 00:13:42 UTC+3 itibarıyla Robert şunları yazdı:

Henrik R.

unread,
Sep 2, 2023, 11:23:17 AM9/2/23
to Kivy users support
I read the Buildozer installation doc, and did this:

(venv) h@hr: ... /GeoESP-android$ pip3 install --upgrade Cython==0.29.33 virtualenv

The output showed that another version was uninstalled. I think it was 3.0.2, but the Terminal cannot contain the huge output of Buildozer log_level = 2, so I cannot go back and check.

Now the compile seems to go a lot further. The following seems to be the new important error:


[DEBUG]:   Unzipping /home/henrik/.gradle/wrapper/dists/gradle-7.4.1-all/8bevta3mh7872g50ecurigeld/gradle-7.4.1-all.zip to /home/henrik/.gradle/wrapper/dists/gradle-7.4.1-all/8bevta3mh7872g50ecurigeld
[DEBUG]:   Set executable permissions for: /home/henrik/.gradle/wrapper/dists/gradle-7.4.1-all/8bevta3mh7872g50ecurigeld/gradle-7.4.1/bin/gradle
[DEBUG]:  
[DEBUG]:   Welcome to Gradle 7.4.1!
[DEBUG]:  
[DEBUG]:   Here are the highlights of this release:
[DEBUG]:    - Aggregated test and JaCoCo reports
[DEBUG]:    - Marking additional test source directories as tests in IntelliJ
[DEBUG]:    - Support for Adoptium JDKs in Java toolchains
[DEBUG]:  
[DEBUG]:   For more details see https://docs.gradle.org/7.4.1/release-notes.html
[DEBUG]:  
[DEBUG]:   Starting a Gradle Daemon (subsequent builds will be faster)
[DEBUG]:  
[DEBUG]:   > Configure project :
[DEBUG]:   WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.
[DEBUG]:   WARNING:We recommend using a newer Android Gradle plugin to use compileSdk = 33
[DEBUG]:  
[DEBUG]:   This Android Gradle plugin (7.1.2) was tested up to compileSdk = 32
[DEBUG]:  
[DEBUG]:   This warning can be suppressed by adding
[DEBUG]:       android.suppressUnsupportedCompileSdk=33
[DEBUG]:   to this project's gradle.properties
[DEBUG]:  
[DEBUG]:   The build will continue, but you are strongly encouraged to update your project to
[DEBUG]:   use a newer Android Gradle Plugin that has been tested with compileSdk = 33
[DEBUG]:  
[DEBUG]:   > Task :checkDebugAarMetadata FAILED
[DEBUG]:  
[DEBUG]:   FAILURE: Build failed with an exception.
[DEBUG]:  
[DEBUG]:   * What went wrong:
[DEBUG]:   Execution failed for task ':checkDebugAarMetadata'.
[DEBUG]:   > Could not resolve all files for configuration ':debugRuntimeClasspath'.
[DEBUG]:      > Could not find "com.android.support:support-core-utils:27.0.0".
[DEBUG]:        Searched in the following locations:
[DEBUG]:          - https://dl.google.com/dl/android/maven2/"com/android/support/support-core-utils/27.0.0"/support-core-utils-27.0.0".pom
[DEBUG]:          - https://jcenter.bintray.com/"com/android/support/support-core-utils/27.0.0"/support-core-utils-27.0.0".pom
[DEBUG]:          - file:/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/dists/geoesptraining/libs/support-core-utils-27.0.0".jar
[DEBUG]:          - file:/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/dists/geoesptraining/libs/support-core-utils.jar
[DEBUG]:        Required by:
[DEBUG]:            project :
[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]:   Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
[DEBUG]:  
[DEBUG]:   You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
[DEBUG]:  
[DEBUG]:   See https://docs.gradle.org/7.4.1/userguide/command_line_interface.html#sec:command_line_warnings
[DEBUG]:  
[DEBUG]:   BUILD FAILED in 1m 30s
[DEBUG]:   4 actionable tasks: 3 executed, 1 up-to-date

Exception in thread background thread for pid 212469:

Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/lib/python3.8/site-packages/sh.py", line 1641, in wrap
    fn(*rgs, **kwargs)
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/lib/python3.8/site-packages/sh.py", line 2569, in background_thread
    handle_exit_code(exit_code)
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/lib/python3.8/site-packages/sh.py", line 2269, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/mnt/4AF15A0435E762B4/mypython/GeoESP/venv/lib/python3.8/site-packages/sh.py", line 869, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1:

  RAN: /mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/dists/geoesptraining/gradlew clean assembleDebug


But further up in the log output I get several errors, like these:


Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/bad_coding.py'...
***   File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/bad_coding.py", line 0
SyntaxError: unknown encoding: uft-8

Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/bad_coding2.py'...
***   File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/bad_coding2.py", line 0
SyntaxError: encoding problem: utf8 with BOM

Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/bad_getattr.py'...
Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/bad_getattr2.py'...
Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/bad_getattr3.py'...
Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_3131.py'...
***   File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_3131.py", line 2
    € = 2
    ^
SyntaxError: invalid character '€' (U+20AC)

Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future10.py'...
***   File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future10.py", line 3
    from __future__ import print_function
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: from __future__ imports must occur at the beginning of the file

Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future3.py'...
***   File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future3.py", line 3
    from __future__ import rested_snopes
    ^
SyntaxError: future feature rested_snopes is not defined

Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future4.py'...
***   File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future4.py", line 3
    from __future__ import nested_scopes
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: from __future__ imports must occur at the beginning of the file

Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future5.py'...
***   File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future5.py", line 4
    from __future__ import nested_scopes
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: from __future__ imports must occur at the beginning of the file

Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future6.py'...
***   File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future6.py", line 3
    from __future__ import nested_scopes
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: from __future__ imports must occur at the beginning of the file

Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future7.py'...
***   File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future7.py", line 3
    from __future__ import nested_scopes; import string; from __future__ import \
                                                        ^
SyntaxError: from __future__ imports must occur at the beginning of the file

Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future8.py'...
***   File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future8.py", line 3
    from __future__ import *
    ^
SyntaxError: future feature * is not defined

Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future9.py'...
***   File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_future9.py", line 3
    from __future__ import nested_scopes, braces
    ^
SyntaxError: not a chance

Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_pep3120.py'...
***   File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/badsyntax_pep3120.py", line 1
    print("b�se")
                ^
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xf6 in position 1: invalid start byte

Compiling '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/bisect_cmd.py'...
Listing '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/capath'...
Listing '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/python3/armeabi-v7a__ndk_target_21/python3/Lib/test/cjkencodings'...


Can anyone understand the meaning of all this? 
If not, then I think I will create another Ubuntu partition on my hard-disk and start from scratch...

Robert

unread,
Sep 2, 2023, 1:17:46 PM9/2/23
to Kivy users support
This it, Gradle complains with
   > Could not find "com.android.support:support-core-utils:27.0.0".

I expect this is something you specify in buildozer.spec

The issue here is the Android support apis changed, and p4a now defaults to the new one (called AndroidX).

Two options
1) set enable_androidx = False  
I do not recommend this, it is easy and it might work, but selecting an old version that nobody uses has risks.

2) update
You'll have to check the package but I expect it is "androidx.core:core:<some_version>"
If I remember this is for a file provider and you have a customized AndroidManifest.tmpl.xml
Change
        android:name="android.support.v4.content.FileProvider"
To 
        android:name="androidx.core.content.FileProvider"

Henrik R.

unread,
Sep 3, 2023, 7:01:40 AM9/3/23
to Kivy users support
It's fantastic you can remember that you helped me insert 'file provider' in "AndroidManifest.tmpl.xml"!
Now I changed that file to do the 2) update. Then I did 'buildozer appclean'.
But now the "from collections import MutableMapping" error reoccurs, because buildozer creates the "..../.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/armeabi-v7a__ndk_target_21/babel/babel/localedata.py" file again.
The error even continues after I manually edit the 'localedata.py' file! Very strange!
How can I solve this permanently? :-)

Robert

unread,
Sep 3, 2023, 12:22:46 PM9/3/23
to Kivy users support
Presumably an appclean forced a new download of Babel
Babel says it suupports Python 3.10 - so this may be a Babel issue.

Henrik R.

unread,
Sep 4, 2023, 2:05:04 PM9/4/23
to Kivy users support
But is it a question of Buildozer downloading the wrong version of Babel?
Here is an excerpt (line 21-22) of that file from https://github.com/python-babel/babel/blob/master/babel/localedata.py :

from collections import abc
from collections.abc import Iterator, Mapping, MutableMapping

Robert

unread,
Sep 4, 2023, 7:57:23 PM9/4/23
to Kivy users support
Buildozer downloads the version you tell it to, if you don't explicitly tell is (my preferred option) it downloads the latest release.
I don't know anything specific about Babel.

Henrik R.

unread,
Sep 5, 2023, 5:34:51 AM9/5/23
to Kivy users support
OK. To be sure I did:

$ buildozer appclean
$ buildozer android debug deploy run

in Terminal, and got the same Babel error again:

  File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/babel/arm64-v8a__ndk_target_21/babel/babel/localedata.py", line 17, in <module>

    from collections import MutableMapping
ImportError: cannot import name 'MutableMapping' from 'collections' (/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/other_builds/hostpython3/desktop/hostpython3/Lib/collections/__init__.py)

But according to https://github.com/python-babel/babel/blob/master/babel/localedata.py the Babel default Master branch contains (line 21-22):

from collections import abc
from collections.abc import Iterator, Mapping, MutableMapping

So Buildozer is downloading another version. But my buildozer.spec contains this:

requirements = python3,kivy==2.0.0,docutils,fluent.runtime,babel,fluent.syntax,attrs,plyer

So, to me, it looks like a bug in Buildozer?

Robert

unread,
Sep 5, 2023, 5:46:52 PM9/5/23
to Kivy users support
Buildozer downloads whatever is on pypi, for this it is just using pip.
Check the version on pypi, and then look at the code tag with that version in Github

Henrik R.

unread,
Sep 6, 2023, 6:32:35 AM9/6/23
to Kivy users support
On https://pypi.org/project/Babel/#files the current version is Babel 2.12.1.
When I download:
"Source Distribution - Babel-2.12.1.tar.gz (9.9 MB view hashes)"

I contains the right "localedata.py" with these lines:

from collections import abc
from collections.abc import Iterator, Mapping, MutableMapping

But those are not the lines Buildozer show me in the log output...(?!)

Henrik R.

unread,
Sep 9, 2023, 3:43:11 AM9/9/23
to Kivy users support
Dear Robert

Did you see my message (above) 3 days ago?
I don't understand why Buildozer apparently downloads another version than the one on pypi.org?

Henrik

Juan Sanchez

unread,
Sep 9, 2023, 10:01:24 AM9/9/23
to kivy-...@googlegroups.com
Hi,

My experience has been if pip has already downloaded a package, it
will keep a cached copy. It will also not reinstall a package with
the same version number unless you force it.

If you are installing into a virtual environment, I would just delete
the whole environment and start over.

It seems buildozer also create some special directories in your home
directory. Also buildozer needs to be local installed outside of a
virtual environment.

Carefully check for a ~/.local (for python local user installs) and
~/.buildozer directory and delete the appropriate contents.

Regards,

Juan
> --
> You received this message because you are subscribed to the Google Groups "Kivy users support" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to kivy-users+...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/431c45af-9b0c-45db-9815-da714345b2d6n%40googlegroups.com.

Henrik R.

unread,
Sep 10, 2023, 9:13:23 AM9/10/23
to Kivy users support
What exactly should I be looking for in my home directory. There is no trace of Babel in the 2 directories you mention.

Buildozer gives this log output - showing that it downloads the wrong version of Babel:

[INFO]:    <- directory context /mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master
[INFO]:    Unpacking babel for armeabi-v7a
[INFO]:    -> running basename https://pypi.python.org/packages/source/B/Babel/Babel-2.2.0.tar.gz
[INFO]:    -> directory context /mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/babel/armeabi-v7a__ndk_target_21
[INFO]:    babel is already unpacked, skipping

[INFO]:    <- directory context /mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master
[INFO]:    Unpacking six for armeabi-v7a

This happens even after creating and activating a new venv. Which, by the way, made Buildozer go back to the version where I have to use "orientation = all" and not "orientation = portrait,landscape" in Buiuldozer.spec. And the following didn't help either. It still uses the old version of Babel:

$ sudo apt update
$ pip3 install --upgrade Babel==2.12.1 virtualenv
$ buildozer appclean
$ buildozer android debug deploy run

Juan Sanchez

unread,
Sep 10, 2023, 10:15:30 AM9/10/23
to kivy-...@googlegroups.com
Hi,

I'm sorry I gave you bad advice. It looks like Babel used to be a
recipe in Python For Android, but now defaults to pip.

How old is your p4a install? It looks like there used to be a recipe
for Babel 2.2.0 but it was removed.

https://github.com/kivy/python-for-android/pull/2826

Maybe if you upgrade your p4a install, it will remove the Babel
recipe. Or maybe you can just delete it in your existing
installation.

pythonforandroid/recipes/babel/__init__.py

Regards,

Juan
> To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/475940e6-221e-45be-ba72-b7258f7e7b23n%40googlegroups.com.

Henrik R.

unread,
Sep 10, 2023, 2:53:21 PM9/10/23
to Kivy users support
This is the content of that __init__.py file:

from pythonforandroid.recipe import PythonRecipe
class BabelRecipe(PythonRecipe):
    name = 'babel'
    version = '2.2.0'
    url = 'https://pypi.python.org/packages/source/B/Babel/Babel-{version}.tar.gz'
    depends = ['setuptools', 'pytz']
    call_hostpython_via_targetpython = False
    install_in_hostpython = True
recipe = BabelRecipe()

Why does it use version 2.2.0, and not the newest (Babel 2.12.1)?
I changed it to 2.12.1. That solved it.

Now I have another problem...: 

A mismatch between my current version of Buildozer and toolchain.py:
Buildozer wants the old "orientation = all" but toolchain.py wants the new "orientation = portrait,landscape".

I guess I should update Buildozer? 
Should I just do the following command, with my venv activated:
pip3 install --upgrade buildozer
Or should I deactivate the venv and do this:
pip3 install --user --upgrade buildozer

Thank you.

Juan Sanchez

unread,
Sep 10, 2023, 8:39:16 PM9/10/23
to kivy-...@googlegroups.com
I don't think Babel is needed as a recipe and a newer versions do not
have it as it should be installed via pip.

My understanding is that buildozer does not like being installed
inside a venv. Even though it looks like that situation may be
improving in recent commits.
https://github.com/kivy/buildozer/commit/40fbf3826167d5c7c1da82515f21e6217340b02f

Please see the first paragraph of:
https://buildozer.readthedocs.io/en/latest/installation.html

which says:
pip3 install --user --upgrade buildozer

so I would not rely on it working inside a venv. I would upgrade and
then switch to a venv for the other components.

Regards,

Juan
> To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/634ab066-1463-4eb0-9dc9-fe7191859840n%40googlegroups.com.

Henrik R.

unread,
Sep 11, 2023, 5:42:46 AM9/11/23
to Kivy users support
OK. Thank you! 
So I:
1. deactivated my venv
2. upgraded Buildozer from version 1.2.0 to 1.5.0
3. activated my venv
4. buildozer appclean
5. buildozer android debug deploy run

But gradlew failed. I think this is the significant part of the huge log level 2 output. Can you help me figure out what went wrong?:

[INFO]:    Detected highest available build tools version to be 34.0.0
[DEBUG]:   -> running gradlew clean assembleDebug
[DEBUG]:   BUILD FAILED in 26s

[DEBUG]:   4 actionable tasks: 3 executed, 1 up-to-date

Exception in thread background thread for pid 1128041:

Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/home/henrik/.local/lib/python3.8/site-packages/sh.py", line 1637, in wrap
    fn(*rgs, **kwargs)
  File "/home/henrik/.local/lib/python3.8/site-packages/sh.py", line 2561, in background_thread
    handle_exit_code(exit_code)
  File "/home/henrik/.local/lib/python3.8/site-packages/sh.py", line 2265, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/home/henrik/.local/lib/python3.8/site-packages/sh.py", line 865, in handle_command_exit_code

    raise exc
sh.ErrorReturnCode_1:

  RAN: /mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/dists/geoesptraining/gradlew clean assembleDebug


By the way: It seem that Buildozer v. 1.5.0 creates far far more log level 2 output than v. 1.2.0. Actually so much, that most of it gets 'deleted' by my Ubuntu Terminal. That doesn't seem optimal.

Robert

unread,
Sep 11, 2023, 1:08:42 PM9/11/23
to Kivy users support

Henrik R.

unread,
Sep 12, 2023, 8:42:47 AM9/12/23
to Kivy users support
Thank you.

That paragraph on Github describes how to find the Buildozer log output that I already posted in my message above. ;-)
But - OK - I looked closer at it, and found this:

> Could not find "com.android.support:support-core-utils:27.0.0".

According to the instructions on Github you refer to, I should find that package on the Maven repository - https://mvnrepository.com/ . I searched for:
"com.android.support" "support-core-utils-27.0.0"
But that search returns 65000 results... That is not very useful...

And even if I could find the "com.android.support:support-core-utils:27.0.0" package I am not sure how to install it - or point Buildozer to it?

Robert

unread,
Sep 12, 2023, 12:31:25 PM9/12/23
to Kivy users support

Henrik R.

unread,
Sep 12, 2023, 1:01:00 PM9/12/23
to Kivy users support
A week ago, I updated my "personal" p4a to the newest Master, from May 22, 2023, which is specified in my Buildozer.spec:

p4a.source_dir = /mnt/4AF15A0435E762B4/mypython/my-p4a-copy-new/python-for-android-master/

In that directory-tree, I inserted the following lines in the file AndroidManifest.tmpl.xml :

    <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="{{ args.package }}.fileprovider"
        android:grantUriPermissions="true"
        android:exported="false">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths" />
    </provider>

In the message you just referred to you wrote the following:

"" 2) update
You'll have to check the package but I expect it is "androidx.core:core:<some_version>"
If I remember this is for a file provider and you have a customized AndroidManifest.tmpl.xml
Change
        android:name="android.support.v4.content.FileProvider"
To 
        android:name="androidx.core.content.FileProvider" ""

I don't understand what it is I still need to do, to solve the error:

> Could not find "com.android.support:support-core-utils:27.0.0".

Robert

unread,
Sep 12, 2023, 5:33:52 PM9/12/23
to Kivy users support
It needs to be "androidx.core:core:<some_version>"

Henrik R.

unread,
Sep 13, 2023, 6:43:40 AM9/13/23
to Kivy users support
OK. Thank you!
So I changed the fileprovider code in AndroidManifest.tmpl.xml to:

    <provider
        android:name="androidx.core:core:1.12.0"

        android:authorities="{{ args.package }}.fileprovider"
        android:grantUriPermissions="true"
        android:exported="false">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths" />
    </provider>

But I still get the same error. Below is the Buildozer log level 2 output. Note that Buildozer searches for "com.android.support:support-core-utils:27.0.0" in https://dl.google.com/dl/android/maven2/ - which no longer exist. And in https://jcenter.bintray.com/ which is "403 Forbidden":

Robert

unread,
Sep 13, 2023, 12:56:03 PM9/13/23
to Kivy users support
In gradle_dependencies, not the fileprovider

Henrik R.

unread,
Sep 14, 2023, 6:55:07 AM9/14/23
to Kivy users support
Aaah... ok!
I am sorry I am not more intimately familiar with my buildozer.spec. :-)

But it didn't really help. It didn't find that dependency either. As I mentioned above, Gradle looks for 2 URLs, where one does not exist and the other is '403 Forbidden':

[DEBUG]:   The build will continue, but you are strongly encouraged to update your project to
[DEBUG]:   use a newer Android Gradle Plugin that has been tested with compileSdk = 33
[DEBUG]:  
[DEBUG]:   > Task :checkDebugAarMetadata FAILED
[DEBUG]:  
[DEBUG]:   FAILURE: Build failed with an exception.
[DEBUG]:  
[DEBUG]:   * What went wrong:
[DEBUG]:   Execution failed for task ':checkDebugAarMetadata'.
[DEBUG]:   > Could not resolve all files for configuration ':debugRuntimeClasspath'.
[DEBUG]:      > Could not find "androidx.core:core:1.12.0".

[DEBUG]:        Searched in the following locations:
[DEBUG]:          - https://dl.google.com/dl/android/maven2/"androidx/core/core/1.12.0"/core-1.12.0".pom
[DEBUG]:          - https://jcenter.bintray.com/"androidx/core/core/1.12.0"/core-1.12.0".pom
[DEBUG]:          - file:/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/dists/geoesptraining/libs/core-1.12.0".jar
[DEBUG]:          - file:/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/dists/geoesptraining/libs/core.jar

[DEBUG]:        Required by:
[DEBUG]:            project :
[DEBUG]:  

Robert

unread,
Sep 14, 2023, 3:48:13 PM9/14/23
to Kivy users support
Well the reference seems good https://mvnrepository.com/artifact/androidx.core/core/1.12.0

I have no idea what is incorrect.

But there some odd " characters in the error messages, could these be from your buildozer.spec ?

Henrik R.

unread,
Sep 15, 2023, 5:28:24 AM9/15/23
to Kivy users support
Now I understand: 
The buildozer version I used in April 2022 (v.1.2.0?) was very happy with the quoted format in buildozer.spec:
android.gradle_dependencies = "com.android.support:support-core-utils:27.0.0"
But the current version (v.1.5.0) needs un-quoted format. So now I tried this:
android.gradle_dependencies = androidx.core:core:1.12.0

But buildozer still fails. Actually it fails much faster... This seems to be the point where things go wrong. I hope YOU can understand what it means (I can't):


Cloning into '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_image/external/libjxl/third_party/sjpeg'...
remote: Enumerating objects: 910, done.        
remote: Counting objects: 100% (79/79), done.        
remote: Compressing objects: 100% (54/54), done.        
remote: Total 910 (delta 27), reused 58 (delta 21), pack-reused 831        
Receiving objects: 100% (910/910), 2.64 MiB | 8.38 MiB/s, done.
Resolving deltas: 100% (567/567), done.
Cloning into '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_image/external/libjxl/third_party/skcms'...
remote: Sending approximately 13.04 MiB ...        
remote: Total 4970 (delta 2272), reused 4970 (delta 2272)        
Receiving objects: 100% (4970/4970), 13.04 MiB | 19.21 MiB/s, done.
Resolving deltas: 100% (2272/2272), done.
fatal: detected dubious ownership in repository at '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_image/external/libjxl/third_party/brotli'
To add an exception for this directory, call:

git config --global --add safe.directory /mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_image/external/libjxl/third_party/brotli
Unable to fetch in submodule path 'third_party/brotli'; trying to directly fetch 2ae7ff838d1a7ba9726ef0f9b3e42d9eadc5d252:
fatal: detected dubious ownership in repository at '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_image/external/libjxl/third_party/brotli'
To add an exception for this directory, call:

git config --global --add safe.directory /mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_image/external/libjxl/third_party/brotli
fatal: detected dubious ownership in repository at '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_image/external/libjxl/third_party/brotli'
To add an exception for this directory, call:

git config --global --add safe.directory /mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/bootstrap_builds/sdl2/jni/SDL2_image/external/libjxl/third_party/brotli
Fetched in submodule path 'third_party/brotli', but it did not contain 2ae7ff838d1a7ba9726ef0f9b3e42d9eadc5d252. Direct fetching of that commit failed.


  STDERR:

# Command failed: ['/usr/bin/python3', '-m', 'pythonforandroid.toolchain', 'create', '--dist_name=geoesptraining', '--bootstrap=sdl2', '--requirements=python3,kivy==2.0.0,docutils,fluent.runtime,babel,fluent.syntax,attrs,plyer', '--arch=armeabi-v7a', '--arch=arm64-v8a', '--copy-libs', '--color=always', '--storage-dir=/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a', '--ndk-api=21', '--ignore-setup-py', '--debug']

# ENVIRONMENT:
#     SHELL = '/bin/bash'
#     SESSION_MANAGER = 'local/henrik-thinkpad-20-04:@/tmp/.ICE-unix/2459,unix/henrik-thinkpad-20-04:/tmp/.ICE-unix/2459'
#     QT_ACCESSIBILITY = '1'

#     COLORTERM = 'truecolor'
#     XDG_CONFIG_DIRS = '/etc/xdg/xdg-ubuntu:/etc/xdg'
#     XDG_MENU_PREFIX = 'gnome-'
#     GNOME_DESKTOP_SESSION_ID = 'this-is-deprecated'
#     LANGUAGE = 'en_GB:en'
#     LC_ADDRESS = 'en_DK.UTF-8'
#     GNOME_SHELL_SESSION_MODE = 'ubuntu'
#     LC_NAME = 'en_DK.UTF-8'
#     SSH_AUTH_SOCK = '/run/user/1000/keyring/ssh'
#     XMODIFIERS = '@im=ibus'
#     DESKTOP_SESSION = 'ubuntu'
#     LC_MONETARY = 'en_DK.UTF-8'
#     SSH_AGENT_PID = '2421'

#     GTK_MODULES = 'gail:atk-bridge'
#     PWD = '/mnt/4AF15A0435E762B4/mypython/GeoESP-android'
#     LOGNAME = 'henrik'
#     XDG_SESSION_DESKTOP = 'ubuntu'
#     XDG_SESSION_TYPE = 'x11'
#     GPG_AGENT_INFO = '/run/user/1000/gnupg/S.gpg-agent:0:1'
#     XAUTHORITY = '/run/user/1000/gdm/Xauthority'
#     GJS_DEBUG_TOPICS = 'JS ERROR;JS LOG'
#     WINDOWPATH = '2'
#     HOME = '/home/henrik'
#     USERNAME = 'henrik'
#     IM_CONFIG_PHASE = '1'
#     LC_PAPER = 'en_DK.UTF-8'
#     LANG = 'en_GB.UTF-8'
#     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:'
#     XDG_CURRENT_DESKTOP = 'ubuntu:GNOME'
#     VIRTUAL_ENV = '/mnt/4AF15A0435E762B4/mypython/GeoESP-android/newvenv'
#     VTE_VERSION = '6003'
#     GNOME_TERMINAL_SCREEN = '/org/gnome/Terminal/screen/5be6c391_128f_40bb_a6ae_a53458f02e75'
#     INVOCATION_ID = '6f95f68066314a7cbd80a3d9fc03c6d1'
#     MANAGERPID = '2238'

#     GJS_DEBUG_OUTPUT = 'stderr'
#     LESSCLOSE = '/usr/bin/lesspipe %s %s'
#     XDG_SESSION_CLASS = 'user'
#     TERM = 'xterm-256color'
#     LC_IDENTIFICATION = 'en_DK.UTF-8'
#     LESSOPEN = '| /usr/bin/lesspipe %s'
#     USER = 'henrik'
#     GNOME_TERMINAL_SERVICE = ':1.2633'

#     DISPLAY = ':0'
#     SHLVL = '1'
#     LC_TELEPHONE = 'en_DK.UTF-8'
#     QT_IM_MODULE = 'ibus'
#     LC_MEASUREMENT = 'en_DK.UTF-8'
#     PAPERSIZE = 'a4'
#     XDG_RUNTIME_DIR = '/run/user/1000'
#     PS1 = ('(newvenv) \\[\\e]0;\\u@\\h: '

 '\\w\\a\\]${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ ')
#     LC_TIME = 'en_DK.UTF-8'
#     JOURNAL_STREAM = '8:60017'

#     XDG_DATA_DIRS = '/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop'
#     PATH = '/home/henrik/.buildozer/android/platform/apache-ant-1.9.4/bin:/mnt/4AF15A0435E762B4/mypython/GeoESP-android/newvenv/bin:/home/henrik/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/henrik/.local/bin/'

#     GDMSESSION = 'ubuntu'
#     DBUS_SESSION_BUS_ADDRESS = 'unix:path=/run/user/1000/bus'
#     LC_NUMERIC = 'en_DK.UTF-8'
#     OLDPWD = '/home/henrik'
#     _ = '/home/henrik/.local/bin/buildozer'

#     PACKAGES_PATH = '/home/henrik/.buildozer/android/packages'
#     ANDROIDSDK = '/home/henrik/.buildozer/android/platform/android-sdk'
#     ANDROIDNDK = '/home/henrik/.buildozer/android/platform/android-ndk-r25b'
#     ANDROIDAPI = '33'
#     ANDROIDMINAPI = '21'
#
# 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
(newvenv) h@hr:/mnt/4AF15A0435E762B4/mypython/GeoESP-android$

Robert

unread,
Sep 15, 2023, 1:09:37 PM9/15/23
to Kivy users support
> fatal: detected dubious ownership in repository

I had never seen this before so I Googled (its a pretty unique message), apparently it comes from 'git'.
You can do the same.
It seems related to a new version of Git for Windows. 
Why you see this on WSL, from inside Buildozer's virtual environment I can't even guess.

What is the disk format of    /mnt/4AF15A0435E762B4   ?

Henrik R.

unread,
Sep 15, 2023, 1:48:09 PM9/15/23
to Kivy users support
That is an NTFS data partition originally created by MS-Windows...
That's because I originally wanted to be able to use it for data both when booting on Ubuntu and on MS-Windows. Now Windows is long gone - and I don't miss it! :-)
So - yes - that might have something to do with it.

Robert

unread,
Sep 15, 2023, 4:30:21 PM9/15/23
to Kivy users support
Yes, it seems possible that something (git?) thinks it is on Windows because it is on NTFS.
Fixing that based on a guess, is almost reckless - but I got nothing else.

Henrik R.

unread,
Sep 16, 2023, 8:19:21 AM9/16/23
to Kivy users support
Do you think it can be solved with:
>sudo chown -R henrik:<groupname> /mnt/4AF15A0435E762B4
And what is <groupname> on Ubuntu linux?
And are there any risks with that?
Or do I need to convert the whole partition using GPartEd - I guess?...

Robert

unread,
Sep 16, 2023, 12:53:57 PM9/16/23
to Kivy users support
I don't know, and I would not want to guess about management issues on somebody else's computer.

Henrik R.

unread,
Sep 16, 2023, 3:04:16 PM9/16/23
to Kivy users support
OK. I understand. I will look into it myself. :-)

Henrik R.

unread,
Sep 17, 2023, 9:09:03 AM9/17/23
to Kivy users support
Yes! This solved it:

In the file '/etc/fstab' (automatic mounting of disks), I changed this line:

/dev/disk/by-uuid/4AF15A0435E762B4 /mnt/4AF15A0435E762B4 auto nosuid,nodev,nofail,x-gvfs-show,x-gvfs-name=Data-drive 0 0

Into this:

/dev/disk/by-uuid/4AF15A0435E762B4 /mnt/4AF15A0435E762B4 ntfs-3g nosuid,nodev,nofail,uid=1000,gid=1000,x-gvfs-show,x-gvfs-name=Data-drive 0 0

Thus making myself the owner of all files on the NTFS partition. :-)
It's funny that I have used this partition every day for more than 5 years without any problems... :-)

But now Gradlew fails... The following seems to be the essential part of the log output now. 
Should I simply change 'android.api = 33' to 'android.api = 34' in buildozer.spec?:

DEBUG]:   > Task :checkDebugAarMetadata FAILED
[DEBUG]:  
[DEBUG]:   FAILURE: Build failed with an exception.
[DEBUG]:  
[DEBUG]:   * What went wrong:
[DEBUG]:   Execution failed for task ':checkDebugAarMetadata'.
[DEBUG]:   > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
[DEBUG]:      > One or more issues found when checking AAR metadata values:
[DEBUG]:  
[DEBUG]:        Dependency 'androidx.core:core:1.12.0' requires 'compileSdkVersion' to be set to 34 or higher.
[DEBUG]:        Compilation target for module ':' is 'android-33'
[DEBUG]:  

Robert

unread,
Sep 17, 2023, 12:40:56 PM9/17/23
to Kivy users support
Either increase android.api version
Or decrease the androidx.core:core: version

Henrik R.

unread,
Sep 17, 2023, 2:45:51 PM9/17/23
to Kivy users support
Do you have any idea about what the 'risk - benefit ratio' is here? :-)
I mean - I suppose Android API level 34 instead of 33 makes my app compatible with newer Android OS versions. But are there any risks from choosing API level 34 and the newest androidx.core:core version?

Robert

unread,
Sep 17, 2023, 3:57:47 PM9/17/23
to Kivy users support
Generally I would say newest release is best. Specifically ....?????
Message has been deleted

Henrik R.

unread,
Sep 18, 2023, 6:12:30 AM9/18/23
to Kivy users support
Great! So far so good! :-)

I chose 'android.api = 34' and 'android.gradle_dependencies = androidx.core:core:1.12.0', and now everything compiles and gets deployed on my phone, but it seems as if 'Kivy cannot find a part of itself'... :-) Although I have not changed the Kivy version. Actually I have not changed a single line in my Python-Kivy app since last year, when everything worked:

ModuleNotFoundError: No module named 'kivy._clock'

Again - I am a bit clueless...

Here is the relevant log from ' adb logcat | grep -w "python" | grep -Fv "extracting" ':

 I python  : Initializing Python for Android
 I python  : Setting additional env vars from p4a_env_vars.txt
 I python  : Changing directory to the one provided by ANDROID_ARGUMENT
 I python  : /data/user/0/dk.transformation.geoesptraining/files/app
 I python  : Preparing to initialize python
 I python  : _python_bundle dir exists
 I python  : calculated paths to be...
 I python  : /data/user/0/dk.transformation.geoesptraining/files/app/_python_bundle/stdlib.zip:/data/user/0/dk.transformation.geoesptraining/files/app/_python_bundle/modules
 I python  : set wchar paths...
 I python  : Initialized python
 I python  : AND: Init threads
 I python  : testing python print redirection
 I python  : Android path ['.', '/data/user/0/dk.transformation.geoesptraining/files/app/_python_bundle/stdlib.zip', '/data/user/0/dk.transformation.geoesptraining/files/app/_python_bundle/modules', '/data/user/0/dk.transformation.geoesptraining/files/app/_python_bundle/site-packages']
 I python  : os.environ is environ({'PATH': '/sbin:/system/sbin:/system/bin:/system/xbin:/vendor/bin:/vendor/xbin', 'DOWNLOAD_CACHE': '/data/cache', 'ANDROID_BOOTLOGO': '1', 'ANDROID_ROOT': '/system', 'ANDROID_ASSETS': '/system/app', 'ANDROID_DATA': '/data', 'ANDROID_STORAGE': '/storage', 'EXTERNAL_STORAGE': '/sdcard', 'ASEC_MOUNTPOINT': '/mnt/asec', 'BOOTCLASSPATH': '/system/framework/QPerformance.jar:/system/framework/qcom.fmradio.jar:/system/framework/oem-services.jar:/system/framework/tcmiface.jar:/system/framework/telephony-ext.jar:/system/framework/core-oj.jar:/system/framework/core-libart.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/bouncycastle.jar:/system/framework/apache-xml.jar:/system/framework/legacy-test.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/org.apache.http.legacy.boot.jar:/system/framework/android.hidl.base-V1.0-java.jar:/system/framework/android.hidl.manager-V1.0-java.jar', 'SYSTEMSERVERCLASSPATH': '/system/framework/services.jar:/system/framework/ethernet-service.jar:/system/framework/wifi-service.jar:/system/framework/com.android.location.provider.jar', 'ANDROID_SOCKET_zygote': '9', 'ANDROID_ENTRYPOINT': 'main.pyc', 'ANDROID_ARGUMENT': '/data/user/0/dk.transformation.geoesptraining/files/app', 'ANDROID_APP_PATH': '/data/user/0/dk.transformation.geoesptraining/files/app', 'ANDROID_PRIVATE': '/data/user/0/dk.transformation.geoesptraining/files', 'ANDROID_UNPACK': '/data/user/0/dk.transformation.geoesptraining/files/app', 'PYTHONHOME': '/data/user/0/dk.transformation.geoesptraining/files/app', 'PYTHONPATH': '/data/user/0/dk.transformation.geoesptraining/files/app:/data/user/0/dk.transformation.geoesptraining/files/app/lib', 'PYTHONOPTIMIZE': '2', 'P4A_BOOTSTRAP': 'SDL2', 'PYTHON_NAME': 'python', 'P4A_IS_WINDOWED': 'True', 'KIVY_ORIENTATION': 'Portrait LandscapeLeft', 'P4A_NUMERIC_VERSION': 'None', 'P4A_MINSDK': '21', 'LC_CTYPE': 'C.UTF-8'})
 I python  : Android kivy bootstrap done. __name__ is __main__
 I python  : AND: Ran string
 I python  : Run user program, change dir and execute entrypoint
 I python  : [WARNING] [Config      ] Older configuration version detected (0 instead of 21)
 I python  : [WARNING] [Config      ] Upgrading configuration in progress.
 I python  : [INFO   ] [Logger      ] Record log in /data/user/0/dk.transformation.geoesptraining/files/app/.kivy/logs/kivy_23-09-18_0.txt
 I python  : [INFO   ] [Kivy        ] v2.0.0
 I python  : [INFO   ] [Kivy        ] Installed at "/data/user/0/dk.transformation.geoesptraining/files/app/_python_bundle/site-packages/kivy/__init__.pyc"
 I python  : [INFO   ] [Python      ] v3.10.10 (main, Sep 18 2023, 11:18:38) [Clang 14.0.6 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0
 I python  : [INFO   ] [Python      ] Interpreter at ""
 I python  : [ERROR  ] [Clock       ] Unable to import kivy._clock. Have you perhaps forgotten to compile kivy? Kivy contains Cython code which needs to be compiled. A missing kivy._clock often indicates the Cython code has not been compiled. Please follow the installation instructions and make sure to compile Kivy
 I python  :  Traceback (most recent call last):
 I python  :    File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/app/main.py", line 38, in <module>
 I python  :    File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/python-installs/geoesptraining/armeabi-v7a/kivy/uix/label.py", line 284, in <module>
 I python  :    File "/mnt/4AF15A0435E762B4/mypython/GeoESP-android/.buildozer/android/platform/build-armeabi-v7a_arm64-v8a/build/python-installs/geoesptraining/armeabi-v7a/kivy/clock.py", line 466, in <module>
 I python  :  ModuleNotFoundError: No module named 'kivy._clock'
 I python  : Python for android ended.

I have deleted all the time stamps, starting with "09-18 11:34:39.553 24539 24728" and ending with "09-18 11:34:40.333 24539 24728".

Robert

unread,
Sep 18, 2023, 12:39:31 PM9/18/23
to Kivy users support
> A missing kivy._clock often indicates the Cython code has not been compiled. Please follow the installation instructions and make sure to compile Kivy

I expect Cython in missing.

Henrik R.

unread,
Sep 19, 2023, 3:41:09 AM9/19/23
to Kivy users support
I installed Cython in my new venv last week:

(newvenv) ... $ sudo apt update
(newvenv) ... $ python3 -m pip install --upgrade Cython==0.29.33 virtualenv
Requirement already up-to-date: Cython==0.29.33 in ./newvenv/lib/python3.8/site-packages (0.29.33)
Requirement already up-to-date: virtualenv in ./newvenv/lib/python3.8/site-packages (20.24.5)
Requirement already satisfied, skipping upgrade: filelock<4,>=3.12.2 in ./newvenv/lib/python3.8/site-packages (from virtualenv) (3.12.3)
Requirement already satisfied, skipping upgrade: platformdirs<4,>=3.9.1 in ./newvenv/lib/python3.8/site-packages (from virtualenv) (3.10.0)
Requirement already satisfied, skipping upgrade: distlib<1,>=0.3.7 in ./newvenv/lib/python3.8/site-packages (from virtualenv) (0.3.7)
Requirement already satisfied, skipping upgrade: typing-extensions>=4.7.1; python_version < "3.11" in ./newvenv/lib/python3.8/site-packages (from filelock<4,>=3.12.2->virtualenv) (4.7.1)

But could it have something to do with the fact that I am still using Kivy 2.0.0 but Python for Android has switched to version 3.10.10? 
In the doc for Kivy 2.0.0 it says: "Kivy 2.0.0 officially supports Python versions 3.6 - 3.9."

The reason I specifically use Kivy 2.0.0 is because back then my modified Touchtracer did not work on Kivy 2.1.0. So the question is if it works on Kivy 2.3.0.dev0 or 2.2.1 or?

Kivy users support

unread,
Sep 19, 2023, 12:32:05 PM9/19/23
to Kivy users support
> In the doc for Kivy 2.0.0 it says: "Kivy 2.0.0 officially supports Python versions 3.6 - 3.9."
Possibly


> So the question is if it works on Kivy 2.3.0.dev0 or 2.2.1 or?
I have no idea.

Henrik R.

unread,
Sep 19, 2023, 4:16:08 PM9/19/23
to Kivy users support
I just added the following comment(s) to the Kivy issue https://github.com/kivy/kivy/issues/7861 - "on_touch_down() in FloatLayout() works in Kivy v.2.0.0 but not in v.2.1.0 #7861":

" I just tried compiling my GeoESP Training app again with:

I python : [INFO ] [Kivy ] v2.2.1
I python : [INFO ] [Python ] v3.10.10 (main, Sep 19 2023, 21:40:45) [Clang 14.0.6 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0

But my Touchtracer still doesn't work. :-(
So the question is which Kivy and Python versions I should try?
The purpose is that I have upgraded from Android API 30 to 34.

I don't know how to re-open this issue? "

Robert

unread,
Sep 19, 2023, 8:11:28 PM9/19/23
to Kivy users support
I suggest you start a new thread, maybe Elliot will pick it up.
I know nothing about this,

Henrik R.

unread,
Sep 20, 2023, 7:08:06 AM9/20/23
to Kivy users support
OK. But I tried switching back to Kivy 2.0.0 and I got this message (again):

"Unable to import kivy._clock. Have you perhaps forgotten to compile kivy? Kivy contains Cython code which needs to be compiled. A missing kivy._clock often indicates the Cython code has not been compiled. Please follow the installation instructions and make sure to compile Kivy"

But I am not sure how I should 'compile Kivy'? 
Is it this?:
python -m pip install kivy[base] kivy_examples
(in the project directory and with my specific venv activated?)
Is it erased every time I do a 'buildozer appclean'?

Henrik R.

unread,
Oct 1, 2023, 9:39:57 AM10/1/23
to Kivy users support
It seems to me that the best way to get my app to work again, is, if someone solves the bug in on_touch_down() in FloatLayout(). The bug is specific to Android.
It worked in Kivy 2.0.0. But it does not work in Kivy 2.1.0 and Kivy 2.2.1.
I have reported the issue here: https://github.com/kivy/kivy/issues/8384
I originally reported it in April 2022 here: https://github.com/kivy/kivy/issues/7861
I hope someone will solve it.

Henrik R.

unread,
Oct 4, 2023, 4:59:42 PM10/4/23
to Kivy users support
OK! Finally everything has been solved, including the issue mentioned in the previous message, and my app can now compile and run in debug mode on my (old) Android phone! 
(Now comes the process of re-releasing it on the Google Play Store.)

If anyone wants to learn from all these tough experiences in the future, I have attached the most relevant files.

A key point in this 'Odyssey' was to discover that I had to manually force Buildozer to use Cython v.0.29.33, even though Kivy v2.2.0 is supposed to work with Cython v.3.0.x.

$ pip3 install --upgrade Cython==0.29.33 virtualenv

From my 'adb logcat':

 I python  : [INFO   ] [Kivy        ] v2.2.0
 I python  : [INFO   ] [Python      ] v3.10.10 (main, Oct  4 2023, 22:04:22) [Clang 14.0.6 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0
buildozer.spec
sharebox_android.py
Reply all
Reply to author
Forward
0 new messages