Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error compiling Cython file: "config.pxi" and "JNIUS_PYTHON3" not found #2790

Open
petaflot opened this issue May 11, 2023 · 29 comments
Open

Comments

@petaflot
Copy link

petaflot commented May 11, 2023

a re-open of kivy/buildozer#1388 because it's not fixed ; was closed because comments point to other issues which point back to kivy/buildozer#1388

Versions

  • Python: 3.8.0,. 3.9.5, 3.10.10
  • OS: Gentoo
  • Buildozer: 1.5.0

Description

I expect buildozer to compile the app

buildozer.spec

Command:

buildozer android debug deploy run

Spec file:

[app]

# (str) Title of your application
title = mTag DEV

# (str) Package name
package.name = mtag_dev

# (str) Package domain (needed for android/ios packaging)
package.domain = dev.engrenage

# (str) Source code where the main.py live
source.dir = .

# (list) Source files to include (let empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas

# (list) List of inclusions using pattern matching
#source.include_patterns = assets/*,images/*.png

# (list) Source files to exclude (let empty to not exclude anything)
#source.exclude_exts = spec

# (list) List of directory to exclude (let empty to not exclude anything)
#source.exclude_dirs = tests, bin, venv

# (list) List of exclusions using pattern matching
# Do not prefix with './'
#source.exclude_patterns = license,images/*/*.jpg

# (str) Application versioning (method 1) - ONLY SUPPORTS NUMBERS (and points)!
version = 0.2.4

# (str) Application versioning (method 2)
# version.regex = __version__ = ['"](.*)['"]
# version.filename = %(source.dir)s/main.py

# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements =
    android,
    python3==3.9.5,
    https://github.com/kivy/plyer/archive/refs/heads/master.zip,
    kivy,
    #https://github.com/kivy/kivy/archive/refs/heads/master.zip,
    libzbar,
    pyzbar==0.1.8,
    sqlalchemy==1.4.39,
    Pillow,
    xcamera==2020.613,
    #https://github.com/kivy-garden/xcamera/archive/refs/heads/master.zip,
    androidstorage4kivy,
    #https://github.com/Android-for-Python/androidstorage4kivy/archive/refs/heads/master.zip,

# (str) Custom source folders for requirements
# Sets custom source for any requirements with recipes
# requirements.source.kivy = ../../kivy
# requirements.source.plyer = ../plyer/

# (str) Presplash of the application
presplash.filename = %(source.dir)s/data/presplash.png

# (str) Icon of the application
icon.filename = %(source.dir)s/data/icon.png

# (str) Supported orientation (one of landscape, portrait)
orientation = portrait

# (list) List of service to declare
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY

#
# OSX Specific
#

#
# author = © Copyright Info

# change the major version of python used by the app
osx.python_version = 3

# Kivy version to use
osx.kivy_version = 1.9.1

#
# Android specific
#

# (bool) Indicate if the application should be fullscreen or not
fullscreen = 0

# (string) Presplash background color (for android toolchain)
# Supported formats are: #RRGGBB #AARRGGBB or one of the following names:
# red, blue, green, black, white, gray, cyan, magenta, yellow, lightgray,
# darkgray, grey, lightgrey, darkgrey, aqua, fuchsia, lime, maroon, navy,
# olive, purple, silver, teal.
#android.presplash_color = #FFFFFF

# (string) Presplash animation using Lottie format.
# see https://lottiefiles.com/ for examples and https://airbnb.design/lottie/
# for general documentation.
# Lottie files can be created using various tools, like Adobe After Effect or Synfig.
#android.presplash_lottie = "path/to/lottie/file.json"

# (str) Adaptive icon of the application (used if Android API level is 26+ at runtime)
#icon.adaptive_foreground.filename = %(source.dir)s/data/icon_fg.png
#icon.adaptive_background.filename = %(source.dir)s/data/icon_bg.png

# (list) Permissions
android.permissions = CAMERA, WRITE_EXTERNAL_STORAGE, INTERNET, ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION

# (list) features (adds uses-feature -tags to manifest)
#android.features = android.hardware.usb.host

# (int) Target Android API, should be as high as possible.
#android.api = 27

# (int) Minimum API your APK / AAB will support.
#android.minapi = 21

# (int) Android SDK version to use
#android.sdk = 20

# (str) Android NDK version to use
#android.ndk = 19b

# (int) Android NDK API to use. This is the minimum API your app will support, it should usually match android.minapi.
#android.ndk_api = 21

# (bool) Use --private data storage (True) or --dir public storage (False)
#android.private_storage = True

# (str) Android NDK directory (if empty, it will be automatically downloaded.)
#android.ndk_path =

# (str) Android SDK directory (if empty, it will be automatically downloaded.)
#android.sdk_path =

# (str) ANT directory (if empty, it will be automatically downloaded.)
#android.ant_path =

# (bool) If True, then skip trying to update the Android sdk
# This can be useful to avoid excess Internet downloads or save time
# when an update is due and you just want to test/build your package
# android.skip_update = False

# (bool) If True, then automatically accept SDK license
# agreements. This is intended for automation only. If set to False,
# the default, you will be shown the license when first running
# buildozer.
# android.accept_sdk_license = False

# (str) Android entry point, default is ok for Kivy-based app
#android.entrypoint = org.kivy.android.PythonActivity

# (str) Full name including package path of the Java class that implements Android Activity
# use that parameter together with android.entrypoint to set custom Java class instead of PythonActivity
#android.activity_class_name = org.kivy.android.PythonActivity

# (str) Extra xml to write directly inside the <manifest> element of AndroidManifest.xml
# use that parameter to provide a filename from where to load your custom XML code
#android.extra_manifest_xml = ./src/android/extra_manifest.xml

# (str) Extra xml to write directly inside the <manifest><application> tag of AndroidManifest.xml
# use that parameter to provide a filename from where to load your custom XML arguments:
#android.extra_manifest_application_arguments = ./src/android/extra_manifest_application_arguments.xml

# (str) Full name including package path of the Java class that implements Python Service
# use that parameter to set custom Java class instead of PythonService
#android.service_class_name = org.kivy.android.PythonService

# (str) Android app theme, default is ok for Kivy-based app
# android.apptheme = "@android:style/Theme.NoTitleBar"

# (list) Pattern to whitelist for the whole project
#android.whitelist =

# (str) Path to a custom whitelist file
#android.whitelist_src =

# (str) Path to a custom blacklist file
#android.blacklist_src =

# (list) List of Java .jar files to add to the libs so that pyjnius can access
# their classes. Don't add jars that you do not need, since extra jars can slow
# down the build process. Allows wildcards matching, for example:
# OUYA-ODK/libs/*.jar
#android.add_jars = foo.jar,bar.jar,path/to/more/*.jar

# (list) List of Java files to add to the android project (can be java or a
# directory containing the files)
#android.add_src =

# (list) Android AAR archives to add
#android.add_aars =

# (list) Put these files or directories in the apk assets directory.
# Either form may be used, and assets need not be in 'source.include_exts'.
# 1) android.add_assets = source_asset_relative_path
# 2) android.add_assets = source_asset_path:destination_asset_relative_path
#android.add_assets =

# (list) Gradle dependencies to add
#android.gradle_dependencies =

# (bool) Enable AndroidX support. Enable when 'android.gradle_dependencies'
# contains an 'androidx' package, or any package from Kotlin source.
# android.enable_androidx requires android.api >= 28
#android.enable_androidx = False

# (list) add java compile options
# this can for example be necessary when importing certain java libraries using the 'android.gradle_dependencies' option
# see https://developer.android.com/studio/write/java8-support for further information
# android.add_compile_options = "sourceCompatibility = 1.8", "targetCompatibility = 1.8"

# (list) Gradle repositories to add {can be necessary for some android.gradle_dependencies}
# please enclose in double quotes 
# e.g. android.gradle_repositories = "maven { url 'https://kotlin.bintray.com/ktor' }"
#android.add_gradle_repositories =

# (list) packaging options to add 
# see https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.html
# can be necessary to solve conflicts in gradle_dependencies
# please enclose in double quotes 
# e.g. android.add_packaging_options = "exclude 'META-INF/common.kotlin_module'", "exclude 'META-INF/*.kotlin_module'"
#android.add_packaging_options =

# (list) Java classes to add as activities to the manifest.
#android.add_activities = com.example.ExampleActivity

# (str) OUYA Console category. Should be one of GAME or APP
# If you leave this blank, OUYA support will not be enabled
#android.ouya.category = GAME

# (str) Filename of OUYA Console icon. It must be a 732x412 png image.
#android.ouya.icon.filename = %(source.dir)s/data/ouya_icon.png

# (str) XML file to include as an intent filters in <activity> tag
#android.manifest.intent_filters =

# (str) launchMode to set for the main activity
#android.manifest.launch_mode = standard

# (list) Android additional libraries to copy into libs/armeabi
#android.add_libs_armeabi = libs/android/*.so
#android.add_libs_armeabi_v7a = libs/android-v7/*.so
#android.add_libs_arm64_v8a = libs/android-v8/*.so
#android.add_libs_x86 = libs/android-x86/*.so
#android.add_libs_mips = libs/android-mips/*.so

# (bool) Indicate whether the screen should stay on
# Don't forget to add the WAKE_LOCK permission if you set this to True
#android.wakelock = False

# (list) Android application meta-data to set (key=value format)
#android.meta_data =

# (list) Android library project to add (will be added in the
# project.properties automatically.)
#android.library_references =

# (list) Android shared libraries which will be added to AndroidManifest.xml using <uses-library> tag
#android.uses_library =

# (str) Android logcat filters to use
#android.logcat_filters = *:S python:D

# (bool) Android logcat only display log for activity's pid
#android.logcat_pid_only = False

# (str) Android additional adb arguments
#android.adb_args = -H host.docker.internal

# (bool) Copy library instead of making a libpymodules.so
#android.copy_libs = 1

# (list) The Android archs to build for, choices: armeabi-v7a, arm64-v8a, x86, x86_64
# In past, was `android.arch` as we weren't supporting builds for multiple archs at the same time.
android.archs = arm64-v8a, armeabi-v7a

# (int) overrides automatic versionCode computation (used in build.gradle)
# this is not the same as app version and should only be edited if you know what you're doing
# android.numeric_version = 1

# (bool) enables Android auto backup feature (Android API >=23)
android.allow_backup = True

# (str) XML file for custom backup rules (see official auto backup documentation)
# android.backup_rules =

# (str) If you need to insert variables into your AndroidManifest.xml file,
# you can do so with the manifestPlaceholders property.
# This property takes a map of key-value pairs. (via a string)
# Usage example : android.manifest_placeholders = [myCustomUrl:\"org.kivy.customurl\"]
# android.manifest_placeholders = [:]

# (bool) disables the compilation of py to pyc/pyo files when packaging
# android.no-compile-pyo = True

# (str) The format used to package the app for release mode (aab or apk).
# android.release_artifact = aab

#
# Python for android (p4a) specific
#

# (str) python-for-android URL to use for checkout
#p4a.url =

# (str) python-for-android fork to use in case if p4a.url is not specified, defaults to upstream (kivy)
#p4a.fork = kivy

# (str) python-for-android branch to use, defaults to master
p4a.branch = master

# (str) python-for-android specific commit to use, defaults to HEAD, must be within p4a.branch
#p4a.commit = HEAD

# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
#p4a.source_dir =

# (str) The directory in which python-for-android should look for your own build recipes (if any)
p4a.local_recipes = local_recipes

# (str) Filename to the hook for p4a
#p4a.hook =

# (str) Bootstrap to use for android builds
# p4a.bootstrap = sdl2

# (int) port number to specify an explicit --port= p4a argument (eg for bootstrap flask)
#p4a.port =

# Control passing the --use-setup-py vs --ignore-setup-py to p4a
# "in the future" --use-setup-py is going to be the default behaviour in p4a, right now it is not
# Setting this to false will pass --ignore-setup-py, true will pass --use-setup-py
# NOTE: this is general setuptools integration, having pyproject.toml is enough, no need to generate
# setup.py if you're using Poetry, but you need to add "toml" to source.include_exts.
#p4a.setup_py = false

# (str) extra command line arguments to pass when invoking pythonforandroid.toolchain
#p4a.extra_args =


#
# iOS specific
#

# (str) Path to a custom kivy-ios folder
#ios.kivy_ios_dir = ../kivy-ios
# Alternately, specify the URL and branch of a git checkout:
ios.kivy_ios_url = https://github.com/kivy/kivy-ios
ios.kivy_ios_branch = master

# Another platform dependency: ios-deploy
# Uncomment to use a custom checkout
#ios.ios_deploy_dir = ../ios_deploy
# Or specify URL and branch
ios.ios_deploy_url = https://github.com/phonegap/ios-deploy
ios.ios_deploy_branch = 1.10.0

# (bool) Whether or not to sign the code
ios.codesign.allowed = false

# (str) Name of the certificate to use for signing the debug version
# Get a list of available identities: buildozer ios list_identities
#ios.codesign.debug = "iPhone Developer: <lastname> <firstname> (<hexstring>)"

# (str) The development team to use for signing the debug version
#ios.codesign.development_team.debug = <hexstring>

# (str) Name of the certificate to use for signing the release version
#ios.codesign.release = %(ios.codesign.debug)s

# (str) The development team to use for signing the release version
#ios.codesign.development_team.release = <hexstring>

# (str) URL pointing to .ipa file to be installed
# This option should be defined along with `display_image_url` and `full_size_image_url` options.
#ios.manifest.app_url =

# (str) URL pointing to an icon (57x57px) to be displayed during download
# This option should be defined along with `app_url` and `full_size_image_url` options.
#ios.manifest.display_image_url =

# (str) URL pointing to a large icon (512x512px) to be used by iTunes
# This option should be defined along with `app_url` and `display_image_url` options.
#ios.manifest.full_size_image_url =


[buildozer]

# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
log_level = 2

# (int) Display warning if buildozer is run as root (0 = False, 1 = True)
warn_on_root = 1

# (str) Path to build artifact storage, absolute or relative to spec file
# build_dir = ./.buildozer

# (str) Path to build output (i.e. .apk, .aab, .ipa) storage
# bin_dir = ./bin

#    -----------------------------------------------------------------------------
#    List as sections
#
#    You can define all the "list" as [section:key].
#    Each line will be considered as a option to the list.
#    Let's take [app] / source.exclude_patterns.
#    Instead of doing:
#
#[app]
#source.exclude_patterns = license,data/audio/*.wav,data/images/original/*
#
#    This can be translated into:
#
#[app:source.exclude_patterns]
#license
#data/audio/*.wav
#data/images/original/*
#


#    -----------------------------------------------------------------------------
#    Profiles
#
#    You can extend section / key with a profile
#    For example, you want to deploy a demo version of your application without
#    HD content. You could first change the title to add "(demo)" in the name
#    and extend the excluded directories to remove the HD content.
#
#[app@demo]
#title = My Application (demo)
#
#[app:source.exclude_patterns@demo]
#images/hd/*
#
#    Then, invoke the command line with the "demo" profile:
#
#buildozer --profile demo android debug

Logs

note: $JAVA_HOME = /etc/java-config-2/current-system-vm/

# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for android
# Search for Git (git)
#  -> found at /usr/bin/git
# Search for Cython (cython)
#  -> found at /home/zeed/.local/lib/python3.10/py/bin/cython
# Search for Java compiler (javac)
#  -> found at /usr/libexec/eselect-java/run-java-tool.bash
# Search for Java keytool (keytool)
#  -> found at /usr/libexec/eselect-java/run-java-tool.bash
# Install platform
# Run ['git', 'config', '--get', 'remote.origin.url']
# Cwd /storage0/naspi/metameta/mtag/.buildozer/android/platform/python-for-android
https://github.com/kivy/python-for-android.git
# Run ['git', 'branch', '-vv']
# Cwd /storage0/naspi/metameta/mtag/.buildozer/android/platform/python-for-android
* master 56bf7335 [origin/master] Merge pull request #2747 from misl6/release-2023.02.10
# Run ['/home/zeed/.local/lib/python3.10/py/bin/python', '-m', 'pip', 'install', '-q', 'appdirs', 'colorama>=0.3.3', 'jinja2', 'sh>=1.10, <2.0; sys_platform!="nt"', 'pep517', 'toml', 'packaging']
# Cwd None
# Apache ANT found at /home/zeed/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK found at /home/zeed/.buildozer/android/platform/android-sdk
# Recommended android's NDK version by p4a is: 25b
# Android NDK found at /home/zeed/.buildozer/android/platform/android-ndk-r25b
# Run ['/home/zeed/.local/lib/python3.10/py/bin/python', '-m', 'pythonforandroid.toolchain', 'aab', '-h', '--color=always', '--storage-dir=/storage0/naspi/metameta/mtag/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a', '--ndk-api=
21', '--ignore-setup-py', '--debug']
# Cwd /storage0/naspi/metameta/mtag/.buildozer/android/platform/python-for-android
[WARNING]: prerequisites.py is experimental and does not support all prerequisites yet.
[WARNING]: Please report any issues to the python-for-android issue tracker.
/storage0/naspi/metameta/mtag/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py:59: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
  if LooseVersion(cur_ver) < LooseVersion(version):
[WARNING]: prerequisites.py is experimental and does not support all prerequisites yet.
[WARNING]: Please report any issues to the python-for-android issue tracker.
usage: toolchain.py aab [-h] [--debug] [--color {always,never,auto}]
                        [--sdk-dir SDK_DIR] [--ndk-dir NDK_DIR]
                        [--android-api ANDROID_API]
                        [--ndk-version NDK_VERSION] [--ndk-api NDK_API]
                        [--symlink-bootstrap-files]
                        [--storage-dir STORAGE_DIR] [--arch ARCH]
                        [--dist-name DIST_NAME] [--requirements REQUIREMENTS]
                        [--recipe-blacklist RECIPE_BLACKLIST]
                        [--blacklist-requirements BLACKLIST_REQUIREMENTS]
                        [--bootstrap BOOTSTRAP] [--hook HOOK] [--force-build]
                        [--no-force-build] [--require-perfect-match]

this is strong evidence that the call to toolchain.py is erroneous!

down below in the log, we get:

[INFO]:    Trying first build of pyjnius to get cython files: this is expected to fail                                                                                                                                              [825/1978]
[DEBUG]:   -> running python3 setup.py build_ext -v
[DEBUG]:        Traceback (most recent call last):
[DEBUG]:          File "/storage0/naspi/metameta/mtag/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/pyjnius-sdl2/armeabi-v7a__ndk_target_21/pyjnius/setup.py", line 70, in <module>
[DEBUG]:            assert JAVA.is_jdk(), "You need a JDK, we only found a JRE. Try setting JAVA_HOME"
[DEBUG]:        AssertionError: You need a JDK, we only found a JRE. Try setting JAVA_HOME
Exception in thread background thread for pid 11857:
Traceback (most recent call last):
  File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/sh.py", line 1641, in wrap
    fn(*rgs, **kwargs)
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/sh.py", line 2569, in background_thread
    handle_exit_code(exit_code)
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/sh.py", line 2269, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/sh.py", line 869, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1:

  RAN: /storage0/naspi/metameta/mtag/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 setup.py build_ext -v

  STDOUT:
Traceback (most recent call last):
  File "/storage0/naspi/metameta/mtag/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/pyjnius-sdl2/armeabi-v7a__ndk_target_21/pyjnius/setup.py", line 70, in <module>
    assert JAVA.is_jdk(), "You need a JDK, we only found a JRE. Try setting JAVA_HOME"
AssertionError: You need a JDK, we only found a JRE. Try setting JAVA_HOME


  STDERR:

[INFO]:    pyjnius first build failed (as expected)
[INFO]:    Running cython where appropriate
[INFO]:    Cythonize jnius/jnius.pyx
[DEBUG]:   -> running python3 -cimport sys; from Cython.Compiler.Main import setuptools_main; sys.exit(setuptools_main()); ./jnius/jnius.pyx
[DEBUG]:        /home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /sto
rage0/naspi/metameta/mtag/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/pyjnius-sdl2/armeabi-v7a__ndk_target_21/pyjnius/jnius/jnius.pyx
[DEBUG]:          tree = Parsing.p_module(s, pxd, full_module_name)
[DEBUG]:
[DEBUG]:        Error compiling Cython file:
[DEBUG]:        ------------------------------------------------------------
[DEBUG]:        ...
[DEBUG]:        import sys
[DEBUG]:        import traceback
[DEBUG]:
[DEBUG]:        include "jnius_compat.pxi"
[DEBUG]:        include "jni.pxi"
[DEBUG]:        include "config.pxi"
[DEBUG]:        ^
[DEBUG]:        ------------------------------------------------------------
[DEBUG]:
[DEBUG]:        jnius/jnius.pyx:100:0: 'config.pxi' not found
[DEBUG]:
[DEBUG]:        Error compiling Cython file:
[DEBUG]:        ------------------------------------------------------------
[DEBUG]:        ...
[DEBUG]:
[DEBUG]:        include "jnius_compat.pxi"
[DEBUG]:        include "jni.pxi"
[DEBUG]:        include "config.pxi"
[DEBUG]:
[DEBUG]:        IF JNIUS_PLATFORM == "android":
[DEBUG]:          ^
[DEBUG]:        ------------------------------------------------------------
[DEBUG]:
[DEBUG]:        jnius/jnius.pyx:102:3: Compile-time name 'JNIUS_PLATFORM' not defined
@misl6 misl6 transferred this issue from kivy/buildozer May 11, 2023
@misl6
Copy link
Member

misl6 commented May 11, 2023

Hi @petaflot !

Can you please share the full log?

PS: Moved the issue to python-for-android

@petaflot
Copy link
Author

buildozer.zip

@misl6
Copy link
Member

misl6 commented May 13, 2023

assert JAVA.is_jdk(), "You need a JDK, we only found a JRE. Try setting JAVA_HOME"
AssertionError: You need a JDK, we only found a JRE. Try setting JAVA_HOME

Do you have a JDK installed in a standard path? If not, can you please try to set the JAVA_HOME env var?

@petaflot
Copy link
Author

I have tried with the following ebuilds: dev-java/openjdk-17.0.6_p10, dev-java/openjdk-bin-17.0.6_p10

$JAVA_HOME is set to /etc/java-config-2/current-system-vm, dir contains a total of 530 subdirs and files.

I am using a venv under which my app works just fine.

@petaflot
Copy link
Author

at the moment, I am not sure whether this is a problem with python-for-android or the distro (Gentoo, unlikely). Maybe there is another test you can suggest? I really despise java and try to get as far as possible from it.

@RobertFlatt
Copy link
Contributor

and try to get as far as possible from it.

Me too, but the resolution is probably going to involve doing the opposite.

I see at the from buildozer.log (about line 9-10) that javac is a bash script

# Search for Java compiler (javac)
# -> found at /usr/libexec/eselect-java/run-java-tool.bash

Mine (Ubuntu) looks like this, and is an executable

# Search for Java compiler (javac)
# -> found at /usr/lib/jvm/java-17-openjdk-amd64/bin/javac

Yours looks like it is finding the Gentoo (specific?) tool eselect
This is possibly an issue, I'm not a Gentoo user I have no way to explore this.
Please put on your Java dancing shoes.....

I wonder if Gentoo Java VM needs to be configured? See https://wiki.gentoo.org/wiki/Java
Try this:

eselect java-vm list
Get index for openjdk-17, for example lets say it is 3

eselect java-vm set system 3
eselect java-vm set user  3

buildozer appclean
buildozer android debug

Please show me the log line following # Search for Java compiler (javac) . Thanks.

@petaflot
Copy link
Author

(py) zeed@alien ~ $ eselect java-vm list
Available Java Virtual Machines:
  [1]   openjdk-17  system-vm
  [2]   openjdk-jre-bin-17

indeed, user-vm was not set. I didn't know there was also a per-user setting.

(py) zeed@alien ~ $ eselect java-vm set user 1
(py) zeed@alien ~ $ eselect java-vm list
Available Java Virtual Machines:
  [1]   openjdk-17  system-vm user-vm
  [2]   openjdk-jre-bin-17
(py) zeed@alien /storage0/naspi/metameta/mtag $ buildozer appclean
# Check configuration tokens
(py) zeed@alien /storage0/naspi/metameta/mtag $ buildozer android debug
# Check configuration tokens
[=======================================] 100% Computing updates...
[=======================================] 100% Computing updates...

at this point buildozer sort-of frozed, with no noticeable CPU or MEM usage ; after a few minutes I slapped it with a KeyboardInterrupt :

^CTraceback (most recent call last):
  File "/home/zeed/.local/lib/python3.10/py/bin/buildozer", line 8, in <module>
    sys.exit(main())
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/scripts/client.py", line 13, in main
    Buildozer().run_command(sys.argv[1:])
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/__init__.py", line 1024, in run_command
    self.target.run_commands(args)
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/target.py", line 93, in run_commands
    func(args)
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/target.py", line 103, in cmd_debug
    self.buildozer.prepare_for_build()
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/__init__.py", line 180, in prepare_for_build
    self.target.compile_platform()
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/targets/android.py", line 755, in compile_platform
    self._p4a(p4a_create, get_stdout=True)[0]
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/targets/android.py", line 133, in _p4a
    return self.buildozer.cmd([*self._p4a_cmd, *cmd, *self.extra_p4a_args], **kwargs)
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/__init__.py", line 306, in cmd
    readx = select.select([fd_stdout, fd_stderr], [], [], 1)[0]
KeyboardInterrupt

trying again, just to see

(py) zeed@alien /storage0/naspi/metameta/mtag $ buildozer android debug
# Check configuration tokens
^CTraceback (most recent call last):
  File "/home/zeed/.local/lib/python3.10/py/bin/buildozer", line 8, in <module>
    sys.exit(main())
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/scripts/client.py", line 13, in main
    Buildozer().run_command(sys.argv[1:])
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/__init__.py", line 1024, in run_command
    self.target.run_commands(args)
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/target.py", line 93, in run_commands
    func(args)
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/target.py", line 103, in cmd_debug
    self.buildozer.prepare_for_build()
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/__init__.py", line 180, in prepare_for_build
    self.target.compile_platform()
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/targets/android.py", line 755, in compile_platform
    self._p4a(p4a_create, get_stdout=True)[0]
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/targets/android.py", line 133, in _p4a
    return self.buildozer.cmd([*self._p4a_cmd, *cmd, *self.extra_p4a_args], **kwargs)
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/__init__.py", line 306, in cmd
    readx = select.select([fd_stdout, fd_stderr], [], [], 1)[0]
KeyboardInterrupt

same thing, except for the missing Computing updates... lines.

Trying with other VM:

(py) zeed@alien ~ $ eselect java-vm set user 2
(py) zeed@alien ~ $ eselect java-vm list
Available Java Virtual Machines:
  [1]   openjdk-17  system-vm
  [2]   openjdk-jre-bin-17 user-vm
(py) zeed@alien /storage0/naspi/metameta/mtag $ buildozer appclean
# Check configuration tokens
Traceback (most recent call last):
  File "/home/zeed/.local/lib/python3.10/py/bin/buildozer", line 8, in <module>
    sys.exit(main())
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/scripts/client.py", line 13, in main
    Buildozer().run_command(sys.argv[1:])
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/__init__.py", line 1014, in run_command
    getattr(self, cmd)(*args)
  File "/home/zeed/.local/lib/python3.10/py/lib/python3.10/site-packages/buildozer/__init__.py", line 1080, in cmd_appclean
    rmtree(self.buildozer_dir)
  File "/usr/lib/python3.10/shutil.py", line 725, in rmtree
    _rmtree_safe_fd(fd, path, onerror)
  File "/usr/lib/python3.10/shutil.py", line 658, in _rmtree_safe_fd
    _rmtree_safe_fd(dirfd, fullname, onerror)
  File "/usr/lib/python3.10/shutil.py", line 658, in _rmtree_safe_fd
    _rmtree_safe_fd(dirfd, fullname, onerror)
  File "/usr/lib/python3.10/shutil.py", line 658, in _rmtree_safe_fd
    _rmtree_safe_fd(dirfd, fullname, onerror)
  [Previous line repeated 6 more times]
  File "/usr/lib/python3.10/shutil.py", line 664, in _rmtree_safe_fd
    onerror(os.rmdir, fullname, sys.exc_info())
  File "/usr/lib/python3.10/shutil.py", line 662, in _rmtree_safe_fd
    os.rmdir(entry.name, dir_fd=topfd)
OSError: [Errno 39] Directory not empty: 'test'
(py) zeed@alien /storage0/naspi/metameta/mtag $ find . -type d -name test
./.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/Python-3.9.9/Lib/tkinter/test
./.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/Python-3.9.9/Lib/sqlite3/test
./.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/Python-3.9.9/Lib/ctypes/test
./.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/Python-3.9.9/Lib/test
./.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/Python-3.9.9/Lib/unittest/test
./.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/Python-3.9.9/Tools/msi/test
./.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/Python-3.9.9/Tools/freeze/test
./.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/Python-3.9.9/Tools/test2to3/test

Setting the java-vm to openjdk-17 produces the same result as the first run.

I will try with dev-java/icedtea as well, but I need to upgrade my system first (and will be away for the next 2-3 days)

@RobertFlatt
Copy link
Contributor

RobertFlatt commented May 16, 2023

Well that is a step forward. And I think the first test case was the correct one.
It looks like even after Gentoo Java configuration, p4a hangs presumably looking for javac.
At this point I have no suggestions, except a couple of sanity checks:

javac --version
which javac

cc: @misl6

@RobertFlatt
Copy link
Contributor

I took another look at this and I suspect this is a different issue unrelated to Java.
So the good news is you don't have to think about Java configuration
(btw, that you didn't want to look at it was the clue that something might have been ignored).

It appears that p4a hangs on startup waiting for stdout. I have never seen this so I assume something site local is the issue.
Things to try, in both cases: does it build? (use eselect java-vm set user 1)

  1. buildozer appclean, then build again
  2. create a new project using Hello World, and default buildozer.spec , change nothing, build

@misl6
Copy link
Member

misl6 commented May 18, 2023

I took another look at this and I suspect this is a different issue unrelated to Java. So the good news is you don't have to think about Java configuration (btw, that you didn't want to look at it was the clue that something might have been ignored).

It appears that p4a hangs on startup waiting for stdout. I have never seen this so I assume something site local is the issue. Things to try, in both cases: does it build? (use eselect java-vm set user 1)

  1. buildozer appclean, then build again
  2. create a new project using Hello World, and default buildozer.spec , change nothing, build

I exactly suspect the same. I searched into organization issues for something similar, but I did not find anything.
Maybe is something Gentoo-specific? (even if we had success stories from Gentoo users)

@Cheaterman
Copy link
Contributor

Cheaterman commented May 18, 2023

Oh uh. Something I failed to mention anywhere somehow is that the JAVA_HOME detection heuristics aren't ideal ; since Gentoo uses a custom script to start Java, detecting a symlink won't be enough ; what I did here is this:

cheaterman@cmans-laptop ~ $ which javac
/home/cheaterman/.local/bin/javac
cheaterman@cmans-laptop ~ $ ls -l $(which javac)
lrwxrwxrwx 1 cheaterman cheaterman 29 25 avril 19:04 /home/cheaterman/.local/bin/javac -> /opt/openjdk-bin-17/bin/javac

Basically manually symlinking ~/.local/bin/javac (which is the first entry in my $PATH) to the actual compiler (inside the actual JAVA_HOME) so that detection works properly.

@petaflot
Copy link
Author

(py) zeed@alien ~ $ javac --version
javac 17.0.6
(py) zeed@alien ~ $ ls -l `which javac`
lrwxrwxrwx 1 root root 44 Sep 19  2022 /usr/bin/javac -> /usr/libexec/eselect-java/run-java-tool.bash

@RobertFlatt , can you give me a link to the hello world example? to make sure I really try with the expected thing.

@RobertFlatt
Copy link
Contributor

RobertFlatt commented May 21, 2023

It seems

/usr/bin/javac -> /usr/libexec/eselect-java/run-java-tool.bash

explains this

> \# Search for Java compiler (javac)
> \#  -> found at /usr/libexec/eselect-java/run-java-tool.bash

My working assumption is we have fixed the Java issue by initializing the OS Java configuration.

For the second issue try Hello World, see last paragraph here https://github.com/Android-for-Python/Android-for-Python-Users#install

@petaflot
Copy link
Author

That is cool so far. Code for "hello world" kivy example makes total sense, now comes the issue with the buildozer config which does not seem so obvious.

Please bear with me, I am not trying to be lazy - quite the opposite in fact, or I would not be coding at all XD - but really trying to make sure we are all dealing with the same "initial conditions".

IMHO it would be good to have a "hello world" repo that can be cloned.

@petaflot
Copy link
Author

petaflot commented Jun 5, 2023

IMHO it would be good to have a "hello world" repo that can be cloned.

ok, so I did just that https://github.com/petaflot/buildozer_helloworld, to make sure we are on the same level.

(py311) meta@gentx ~/_git/buildozer_helloworld $ buildozer android debug
# Check configuration tokens
# Ensure build layout
# Create directory /tank/home/meta/_git/buildozer_helloworld/.buildozer
# Create directory /tank/home/meta/_git/buildozer_helloworld/bin
# Create directory /tank/home/meta/_git/buildozer_helloworld/.buildozer/applibs
# Create directory /tank/home/meta/_git/buildozer_helloworld/.buildozer/android/platform
# Create directory /tank/home/meta/_git/buildozer_helloworld/.buildozer/android/app
# Check configuration tokens
# Preparing build
# Check requirements for android
# Search for Git (git)
#  -> found at /usr/bin/git
# Search for Cython (cython)
#  -> found at /tank/home/meta/.local/bin/cython
# Search for Java compiler (javac)
#  -> found at /usr/libexec/eselect-java/run-java-tool.bash
# Search for Java keytool (keytool)
#  -> found at /usr/libexec/eselect-java/run-java-tool.bash
# Install platform
# Run ['git', 'clone', '-b', 'master', '--single-branch', 'https://github.com/kivy/python-for-android.git', 'python-for-android']
# Cwd /tank/home/meta/_git/buildozer_helloworld/.buildozer/android/platform
Clonage dans 'python-for-android'...
# Run ['/home/meta/.local/python_venvs/py311/bin/python', '-m', 'pip', 'install', '-q', 'appdirs', 'colorama>=0.3.3', 'jinja2', 'sh>=1.10, <2.0; sys_platform!="nt"', 'pep517', 'toml', 'packaging']
# Cwd None
# Apache ANT found at /home/meta/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK found at /home/meta/.buildozer/android/platform/android-sdk
# Recommended android's NDK version by p4a is: 25b
# Android NDK found at /home/meta/.buildozer/android/platform/android-ndk-r25b
# Installing/updating SDK platform tools if necessary
# Run ['/home/meta/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager', '--sdk_root=/home/meta/.buildozer/android/platform/android-sdk', 'platform-tools']
# Cwd /home/meta/.buildozer/android/platform/android-sdk
[=======================================] 100% Computing updates...
# Run ['/home/meta/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager', '--sdk_root=/home/meta/.buildozer/android/platform/android-sdk', '--update']
# Cwd /home/meta/.buildozer/android/platform/android-sdk
[=======================================] 100% Computing updates...
# Updating SDK build tools if necessary
# Run ['/home/meta/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager', '--sdk_root=/home/meta/.buildozer/android/platform/android-sdk', '--list']
# Cwd /home/meta/.buildozer/android/platform/android-sdk
Installed packages:=====================] 100% Computing updates...
  Path                   | Version    | Description                    | Location
  -------                | -------    | -------                        | -------
  build-tools;34.0.0-rc2 | 34.0.0 rc2 | Android SDK Build-Tools 34-rc2 | build-tools/34.0.0-rc2/
  build-tools;34.0.0-rc4 | 34.0.0 rc4 | Android SDK Build-Tools 34-rc4 | build-tools/34.0.0-rc4/
  platform-tools         | 34.0.3     | Android SDK Platform-Tools     | platform-tools/
  platforms;android-31   | 1          | Android SDK Platform 31        | platforms/android-31/
  platforms;android-32   | 1          | Android SDK Platform 32        | platforms/android-32/
  tools                  | 2.0.0      | Android SDK Tools 2            | tools/

Available Packages:
  Path                                                                                     | Version      | Description
  -------                                                                                  | -------      | -------
  add-ons;addon-google_apis-google-15                                                      | 3            | Google APIs
  add-ons;addon-google_apis-google-16                                                      | 4            | Google APIs
  add-ons;addon-google_apis-google-17                                                      | 4            | Google APIs
  add-ons;addon-google_apis-google-18                                                      | 4            | Google APIs
  add-ons;addon-google_apis-google-19                                                      | 20           | Google APIs
  add-ons;addon-google_apis-google-21                                                      | 1            | Google APIs
  add-ons;addon-google_apis-google-22                                                      | 1            | Google APIs
  add-ons;addon-google_apis-google-23                                                      | 1            | Google APIs
  add-ons;addon-google_apis-google-24                                                      | 1            | Google APIs
  build-tools;19.1.0                                                                       | 19.1.0       | Android SDK Build-Tools 19.1
  build-tools;20.0.0                                                                       | 20.0.0       | Android SDK Build-Tools 20
  build-tools;21.1.2                                                                       | 21.1.2       | Android SDK Build-Tools 21.1.2
  build-tools;22.0.1                                                                       | 22.0.1       | Android SDK Build-Tools 22.0.1
  build-tools;23.0.1                                                                       | 23.0.1       | Android SDK Build-Tools 23.0.1
  build-tools;23.0.2                                                                       | 23.0.2       | Android SDK Build-Tools 23.0.2
  build-tools;23.0.3                                                                       | 23.0.3       | Android SDK Build-Tools 23.0.3
  build-tools;24.0.0                                                                       | 24.0.0       | Android SDK Build-Tools 24
  build-tools;24.0.1                                                                       | 24.0.1       | Android SDK Build-Tools 24.0.1
  build-tools;24.0.2                                                                       | 24.0.2       | Android SDK Build-Tools 24.0.2
  build-tools;24.0.3                                                                       | 24.0.3       | Android SDK Build-Tools 24.0.3
  build-tools;25.0.0                                                                       | 25.0.0       | Android SDK Build-Tools 25
  build-tools;25.0.1                                                                       | 25.0.1       | Android SDK Build-Tools 25.0.1
  build-tools;25.0.2                                                                       | 25.0.2       | Android SDK Build-Tools 25.0.2
  build-tools;25.0.3                                                                       | 25.0.3       | Android SDK Build-Tools 25.0.3
  build-tools;26.0.0                                                                       | 26.0.0       | Android SDK Build-Tools 26
  build-tools;26.0.1                                                                       | 26.0.1       | Android SDK Build-Tools 26.0.1
  build-tools;26.0.2                                                                       | 26.0.2       | Android SDK Build-Tools 26.0.2
  build-tools;26.0.3                                                                       | 26.0.3       | Android SDK Build-Tools 26.0.3
  build-tools;27.0.0                                                                       | 27.0.0       | Android SDK Build-Tools 27
  build-tools;27.0.1                                                                       | 27.0.1       | Android SDK Build-Tools 27.0.1
  build-tools;27.0.2                                                                       | 27.0.2       | Android SDK Build-Tools 27.0.2
  build-tools;27.0.3                                                                       | 27.0.3       | Android SDK Build-Tools 27.0.3
  build-tools;28.0.0                                                                       | 28.0.0       | Android SDK Build-Tools 28
  build-tools;28.0.1                                                                       | 28.0.1       | Android SDK Build-Tools 28.0.1
  build-tools;28.0.2                                                                       | 28.0.2       | Android SDK Build-Tools 28.0.2
  build-tools;28.0.3                                                                       | 28.0.3       | Android SDK Build-Tools 28.0.3
  build-tools;29.0.0                                                                       | 29.0.0       | Android SDK Build-Tools 29
  build-tools;29.0.1                                                                       | 29.0.1       | Android SDK Build-Tools 29.0.1
  build-tools;29.0.2                                                                       | 29.0.2       | Android SDK Build-Tools 29.0.2
  build-tools;29.0.3                                                                       | 29.0.3       | Android SDK Build-Tools 29.0.3
  build-tools;30.0.0                                                                       | 30.0.0       | Android SDK Build-Tools 30
  build-tools;30.0.1                                                                       | 30.0.1       | Android SDK Build-Tools 30.0.1
  build-tools;30.0.2                                                                       | 30.0.2       | Android SDK Build-Tools 30.0.2
  build-tools;30.0.3                                                                       | 30.0.3       | Android SDK Build-Tools 30.0.3
  build-tools;31.0.0                                                                       | 31.0.0       | Android SDK Build-Tools 31
  build-tools;32.0.0                                                                       | 32.0.0       | Android SDK Build-Tools 32
  build-tools;32.1.0-rc1                                                                   | 32.1.0 rc1   | Android SDK Build-Tools 32.1-rc1
  build-tools;33.0.0                                                                       | 33.0.0       | Android SDK Build-Tools 33
  build-tools;33.0.1                                                                       | 33.0.1       | Android SDK Build-Tools 33.0.1
  build-tools;33.0.2                                                                       | 33.0.2       | Android SDK Build-Tools 33.0.2
  build-tools;34.0.0-rc1                                                                   | 34.0.0 rc1   | Android SDK Build-Tools 34-rc1
  build-tools;34.0.0-rc2                                                                   | 34.0.0 rc2   | Android SDK Build-Tools 34-rc2
  build-tools;34.0.0-rc3                                                                   | 34.0.0 rc3   | Android SDK Build-Tools 34-rc3
  build-tools;34.0.0-rc4                                                                   | 34.0.0 rc4   | Android SDK Build-Tools 34-rc4
  cmake;3.10.2.4988404                                                                     | 3.10.2       | CMake 3.10.2.4988404
  cmake;3.18.1                                                                             | 3.18.1       | CMake 3.18.1
  cmake;3.22.1                                                                             | 3.22.1       | CMake 3.22.1
  cmake;3.6.4111459                                                                        | 3.6.4111459  | CMake 3.6.4111459
  cmdline-tools;1.0                                                                        | 1.0          | Android SDK Command-line Tools
  cmdline-tools;2.1                                                                        | 2.1          | Android SDK Command-line Tools
  cmdline-tools;3.0                                                                        | 3.0          | Android SDK Command-line Tools
  cmdline-tools;4.0                                                                        | 4.0          | Android SDK Command-line Tools
  cmdline-tools;5.0                                                                        | 5.0          | Android SDK Command-line Tools
  cmdline-tools;6.0                                                                        | 6.0          | Android SDK Command-line Tools
  cmdline-tools;7.0                                                                        | 7.0          | Android SDK Command-line Tools
  cmdline-tools;8.0                                                                        | 8.0          | Android SDK Command-line Tools
  cmdline-tools;9.0                                                                        | 9.0          | Android SDK Command-line Tools
  cmdline-tools;latest                                                                     | 9.0          | Android SDK Command-line Tools (latest)
  emulator                                                                                 | 32.1.13      | Android Emulator
  extras;android;m2repository                                                              | 47.0.0       | Android Support Repository
  extras;google;auto                                                                       | 2.0          | Android Auto Desktop Head Unit Emulator
  extras;google;google_play_services                                                       | 49           | Google Play services
  extras;google;instantapps                                                                | 1.9.0        | Google Play Instant Development SDK
  extras;google;m2repository                                                               | 58           | Google Repository
  extras;google;market_apk_expansion                                                       | 1            | Google Play APK Expansion library
  extras;google;market_licensing                                                           | 1            | Google Play Licensing Library
  extras;google;simulators                                                                 | 1            | Android Auto API Simulators
  extras;google;webdriver                                                                  | 2            | Google Web Driver
  extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0        | 1            | Solver for ConstraintLayout 1.0.0
  extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4 | 1            | com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4
  extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8 | 1            | Solver for ConstraintLayout 1.0.0-alpha8
  extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1  | 1            | Solver for ConstraintLayout 1.0.0-beta1
  extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2  | 1            | Solver for ConstraintLayout 1.0.0-beta2
  extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3  | 1            | Solver for ConstraintLayout 1.0.0-beta3
  extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4  | 1            | Solver for ConstraintLayout 1.0.0-beta4
  extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5  | 1            | Solver for ConstraintLayout 1.0.0-beta5
  extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1        | 1            | Solver for ConstraintLayout 1.0.1
  extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2        | 1            | Solver for ConstraintLayout 1.0.2
  extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0               | 1            | ConstraintLayout for Android 1.0.0
  extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4        | 1            | com.android.support.constraint:constraint-layout:1.0.0-alpha4
  extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8        | 1            | ConstraintLayout for Android 1.0.0-alpha8
  extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1         | 1            | ConstraintLayout for Android 1.0.0-beta1
  extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2         | 1            | ConstraintLayout for Android 1.0.0-beta2
  extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3         | 1            | ConstraintLayout for Android 1.0.0-beta3
  extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4         | 1            | ConstraintLayout for Android 1.0.0-beta4
  extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5         | 1            | ConstraintLayout for Android 1.0.0-beta5
  extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1               | 1            | ConstraintLayout for Android 1.0.1
  extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2               | 1            | ConstraintLayout for Android 1.0.2
  ndk-bundle                                                                               | 22.1.7171670 | NDK
  ndk;16.1.4479499                                                                         | 16.1.4479499 | NDK (Side by side) 16.1.4479499
  ndk;17.2.4988734                                                                         | 17.2.4988734 | NDK (Side by side) 17.2.4988734
  ndk;18.1.5063045                                                                         | 18.1.5063045 | NDK (Side by side) 18.1.5063045
  ndk;19.2.5345600                                                                         | 19.2.5345600 | NDK (Side by side) 19.2.5345600
  ndk;20.0.5594570                                                                         | 20.0.5594570 | NDK (Side by side) 20.0.5594570
  ndk;20.1.5948944                                                                         | 20.1.5948944 | NDK (Side by side) 20.1.5948944
  ndk;21.0.6113669                                                                         | 21.0.6113669 | NDK (Side by side) 21.0.6113669
  ndk;21.1.6352462                                                                         | 21.1.6352462 | NDK (Side by side) 21.1.6352462
  ndk;21.2.6472646                                                                         | 21.2.6472646 | NDK (Side by side) 21.2.6472646
  ndk;21.3.6528147                                                                         | 21.3.6528147 | NDK (Side by side) 21.3.6528147
  ndk;21.4.7075529                                                                         | 21.4.7075529 | NDK (Side by side) 21.4.7075529
  ndk;22.0.7026061                                                                         | 22.0.7026061 | NDK (Side by side) 22.0.7026061
  ndk;22.1.7171670                                                                         | 22.1.7171670 | NDK (Side by side) 22.1.7171670
  ndk;23.0.7599858                                                                         | 23.0.7599858 | NDK (Side by side) 23.0.7599858
  ndk;23.1.7779620                                                                         | 23.1.7779620 | NDK (Side by side) 23.1.7779620
  ndk;23.2.8568313                                                                         | 23.2.8568313 | NDK (Side by side) 23.2.8568313
  ndk;24.0.8215888                                                                         | 24.0.8215888 | NDK (Side by side) 24.0.8215888
  ndk;25.0.8775105                                                                         | 25.0.8775105 | NDK (Side by side) 25.0.8775105
  ndk;25.1.8937393                                                                         | 25.1.8937393 | NDK (Side by side) 25.1.8937393
  ndk;25.2.9519653                                                                         | 25.2.9519653 | NDK (Side by side) 25.2.9519653
  patcher;v4                                                                               | 1            | SDK Patch Applier v4
  platform-tools                                                                           | 34.0.3       | Android SDK Platform-Tools
  platforms;android-10                                                                     | 2            | Android SDK Platform 10
  platforms;android-11                                                                     | 2            | Android SDK Platform 11
  platforms;android-12                                                                     | 3            | Android SDK Platform 12
  platforms;android-13                                                                     | 1            | Android SDK Platform 13
  platforms;android-14                                                                     | 4            | Android SDK Platform 14
  platforms;android-15                                                                     | 5            | Android SDK Platform 15
  platforms;android-16                                                                     | 5            | Android SDK Platform 16
  platforms;android-17                                                                     | 3            | Android SDK Platform 17
  platforms;android-18                                                                     | 3            | Android SDK Platform 18
  platforms;android-19                                                                     | 4            | Android SDK Platform 19
  platforms;android-20                                                                     | 2            | Android SDK Platform 20
  platforms;android-21                                                                     | 2            | Android SDK Platform 21
  platforms;android-22                                                                     | 2            | Android SDK Platform 22
  platforms;android-23                                                                     | 3            | Android SDK Platform 23
  platforms;android-24                                                                     | 2            | Android SDK Platform 24
  platforms;android-25                                                                     | 3            | Android SDK Platform 25
  platforms;android-26                                                                     | 2            | Android SDK Platform 26
  platforms;android-27                                                                     | 3            | Android SDK Platform 27
  platforms;android-28                                                                     | 6            | Android SDK Platform 28
  platforms;android-29                                                                     | 5            | Android SDK Platform 29
  platforms;android-30                                                                     | 3            | Android SDK Platform 30
  platforms;android-31                                                                     | 1            | Android SDK Platform 31
  platforms;android-32                                                                     | 1            | Android SDK Platform 32
  platforms;android-33                                                                     | 2            | Android SDK Platform 33
  platforms;android-7                                                                      | 3            | Android SDK Platform 7
  platforms;android-8                                                                      | 3            | Android SDK Platform 8
  platforms;android-9                                                                      | 2            | Android SDK Platform 9
  platforms;android-TiramisuPrivacySandbox                                                 | 9            | Android SDK Platform TiramisuPrivacySandbox
  platforms;android-UpsideDownCake                                                         | 4            | Android SDK Platform UpsideDownCake
  platforms;android-UpsideDownCakePrivacySandbox                                           | 1            | Android SDK Platform UpsideDownCakePrivacySandbox
  skiaparser;1                                                                             | 6            | Layout Inspector image server for API 29-30
  skiaparser;2                                                                             | 3            | Layout Inspector image server for API S
  skiaparser;3                                                                             | 3            | Layout Inspector image server for API 31-34
  sources;android-15                                                                       | 2            | Sources for Android 15
  sources;android-16                                                                       | 2            | Sources for Android 16
  sources;android-17                                                                       | 1            | Sources for Android 17
  sources;android-18                                                                       | 1            | Sources for Android 18
  sources;android-19                                                                       | 2            | Sources for Android 19
  sources;android-20                                                                       | 1            | Sources for Android 20
  sources;android-21                                                                       | 1            | Sources for Android 21
  sources;android-22                                                                       | 1            | Sources for Android 22
  sources;android-23                                                                       | 1            | Sources for Android 23
  sources;android-24                                                                       | 1            | Sources for Android 24
  sources;android-25                                                                       | 1            | Sources for Android 25
  sources;android-26                                                                       | 1            | Sources for Android 26
  sources;android-27                                                                       | 1            | Sources for Android 27
  sources;android-28                                                                       | 1            | Sources for Android 28
  sources;android-29                                                                       | 1            | Sources for Android 29
  sources;android-30                                                                       | 1            | Sources for Android 30
  sources;android-31                                                                       | 1            | Sources for Android 31
  sources;android-32                                                                       | 1            | Sources for Android 32
  sources;android-33                                                                       | 1            | Sources for Android 33
  system-images;android-10;default;armeabi-v7a                                             | 5            | ARM EABI v7a System Image
  system-images;android-10;default;x86                                                     | 5            | Intel x86 Atom System Image
  system-images;android-10;google_apis;armeabi-v7a                                         | 6            | Google APIs ARM EABI v7a System Image
  system-images;android-10;google_apis;x86                                                 | 6            | Google APIs Intel x86 Atom System Image
  system-images;android-14;default;armeabi-v7a                                             | 2            | ARM EABI v7a System Image
  system-images;android-15;default;armeabi-v7a                                             | 5            | ARM EABI v7a System Image
  system-images;android-15;default;x86                                                     | 7            | Intel x86 Atom System Image
  system-images;android-15;google_apis;armeabi-v7a                                         | 6            | Google APIs ARM EABI v7a System Image
  system-images;android-15;google_apis;x86                                                 | 7            | Google APIs Intel x86 Atom System Image
  system-images;android-16;default;armeabi-v7a                                             | 6            | ARM EABI v7a System Image
  system-images;android-16;default;mips                                                    | 1            | MIPS System Image
  system-images;android-16;default;x86                                                     | 7            | Intel x86 Atom System Image
  system-images;android-16;google_apis;armeabi-v7a                                         | 6            | Google APIs ARM EABI v7a System Image
  system-images;android-16;google_apis;x86                                                 | 7            | Google APIs Intel x86 Atom System Image
  system-images;android-17;default;armeabi-v7a                                             | 6            | ARM EABI v7a System Image
  system-images;android-17;default;mips                                                    | 1            | MIPS System Image
  system-images;android-17;default;x86                                                     | 7            | Intel x86 Atom System Image
  system-images;android-17;google_apis;armeabi-v7a                                         | 6            | Google APIs ARM EABI v7a System Image
  system-images;android-17;google_apis;x86                                                 | 7            | Google APIs Intel x86 Atom System Image
  system-images;android-18;default;armeabi-v7a                                             | 5            | ARM EABI v7a System Image
  system-images;android-18;default;x86                                                     | 4            | Intel x86 Atom System Image
  system-images;android-18;google_apis;armeabi-v7a                                         | 6            | Google APIs ARM EABI v7a System Image
  system-images;android-18;google_apis;x86                                                 | 6            | Google APIs Intel x86 Atom System Image
  system-images;android-19;default;armeabi-v7a                                             | 5            | ARM EABI v7a System Image
  system-images;android-19;default;x86                                                     | 6            | Intel x86 Atom System Image
  system-images;android-19;google_apis;armeabi-v7a                                         | 40           | Google APIs ARM EABI v7a System Image
  system-images;android-19;google_apis;x86                                                 | 40           | Google APIs Intel x86 Atom System Image
  system-images;android-21;android-tv;armeabi-v7a                                          | 3            | Android TV ARM EABI v7a System Image
  system-images;android-21;android-tv;x86                                                  | 3            | Android TV Intel x86 Atom System Image
  system-images;android-21;default;arm64-v8a                                               | 4            | ARM 64 v8a System Image
  system-images;android-21;default;armeabi-v7a                                             | 4            | ARM EABI v7a System Image
  system-images;android-21;default;x86                                                     | 5            | Intel x86 Atom System Image
  system-images;android-21;default;x86_64                                                  | 5            | Intel x86_64 Atom System Image
  system-images;android-21;google_apis;arm64-v8a                                           | 32           | Google APIs ARM 64 v8a System Image
  system-images;android-21;google_apis;armeabi-v7a                                         | 32           | Google APIs ARM EABI v7a System Image
  system-images;android-21;google_apis;x86                                                 | 32           | Google APIs Intel x86 Atom System Image
  system-images;android-21;google_apis;x86_64                                              | 32           | Google APIs Intel x86_64 Atom System Image
  system-images;android-22;android-tv;x86                                                  | 3            | Android TV Intel x86 Atom System Image
  system-images;android-22;default;arm64-v8a                                               | 2            | ARM 64 v8a System Image
  system-images;android-22;default;armeabi-v7a                                             | 2            | ARM EABI v7a System Image
  system-images;android-22;default;x86                                                     | 6            | Intel x86 Atom System Image
  system-images;android-22;default;x86_64                                                  | 6            | Intel x86_64 Atom System Image
  system-images;android-22;google_apis;arm64-v8a                                           | 26           | Google APIs ARM 64 v8a System Image
  system-images;android-22;google_apis;armeabi-v7a                                         | 26           | Google APIs ARM EABI v7a System Image
  system-images;android-22;google_apis;x86                                                 | 26           | Google APIs Intel x86 Atom System Image
  system-images;android-22;google_apis;x86_64                                              | 26           | Google APIs Intel x86_64 Atom System Image
  system-images;android-23;android-tv;armeabi-v7a                                          | 12           | Android TV ARM EABI v7a System Image
  system-images;android-23;android-tv;x86                                                  | 21           | Android TV Intel x86 Atom System Image
  system-images;android-23;default;arm64-v8a                                               | 7            | ARM 64 v8a System Image
  system-images;android-23;default;armeabi-v7a                                             | 6            | ARM EABI v7a System Image
  system-images;android-23;default;x86                                                     | 10           | Intel x86 Atom System Image
  system-images;android-23;default;x86_64                                                  | 10           | Intel x86_64 Atom System Image
  system-images;android-23;google_apis;arm64-v8a                                           | 33           | Google APIs ARM 64 v8a System Image
  system-images;android-23;google_apis;armeabi-v7a                                         | 33           | Google APIs ARM EABI v7a System Image
  system-images;android-23;google_apis;x86                                                 | 33           | Google APIs Intel x86 Atom System Image
  system-images;android-23;google_apis;x86_64                                              | 33           | Google APIs Intel x86_64 Atom System Image
  system-images;android-24;android-tv;x86                                                  | 22           | Android TV Intel x86 Atom System Image
  system-images;android-24;default;arm64-v8a                                               | 9            | ARM 64 v8a System Image
  system-images;android-24;default;armeabi-v7a                                             | 7            | ARM EABI v7a System Image
  system-images;android-24;default;x86                                                     | 8            | Intel x86 Atom System Image
  system-images;android-24;default;x86_64                                                  | 8            | Intel x86_64 Atom System Image
  system-images;android-24;google_apis;arm64-v8a                                           | 29           | Google APIs ARM 64 v8a System Image
  system-images;android-24;google_apis;x86                                                 | 27           | Google APIs Intel x86 Atom System Image
  system-images;android-24;google_apis;x86_64                                              | 27           | Google APIs Intel x86_64 Atom System Image
  system-images;android-24;google_apis_playstore;x86                                       | 19           | Google Play Intel x86 Atom System Image
  system-images;android-25;android-tv;x86                                                  | 16           | Android TV Intel x86 Atom System Image
  system-images;android-25;android-wear-cn;armeabi-v7a                                     | 4            | China version of Android Wear ARM EABI v7a System Image
  system-images;android-25;android-wear-cn;x86                                             | 4            | China version of Android Wear Intel x86 Atom System Image
  system-images;android-25;android-wear;armeabi-v7a                                        | 3            | Android Wear ARM EABI v7a System Image
  system-images;android-25;android-wear;x86                                                | 3            | Android Wear Intel x86 Atom System Image
  system-images;android-25;default;arm64-v8a                                               | 2            | ARM 64 v8a System Image
  system-images;android-25;default;x86                                                     | 1            | Intel x86 Atom System Image
  system-images;android-25;default;x86_64                                                  | 1            | Intel x86_64 Atom System Image
  system-images;android-25;google_apis;arm64-v8a                                           | 20           | Google APIs ARM 64 v8a System Image
  system-images;android-25;google_apis;armeabi-v7a                                         | 18           | Google APIs ARM EABI v7a System Image
  system-images;android-25;google_apis;x86                                                 | 18           | Google APIs Intel x86 Atom System Image
  system-images;android-25;google_apis;x86_64                                              | 18           | Google APIs Intel x86_64 Atom System Image
  system-images;android-25;google_apis_playstore;x86                                       | 9            | Google Play Intel x86 Atom System Image
  system-images;android-26;android-tv;x86                                                  | 14           | Android TV Intel x86 Atom System Image
  system-images;android-26;android-wear-cn;x86                                             | 4            | China version of Android Wear Intel x86 Atom System Image
  system-images;android-26;android-wear;x86                                                | 4            | Android Wear Intel x86 Atom System Image
  system-images;android-26;default;arm64-v8a                                               | 2            | ARM 64 v8a System Image
  system-images;android-26;default;x86                                                     | 1            | Intel x86 Atom System Image
  system-images;android-26;default;x86_64                                                  | 1            | Intel x86_64 Atom System Image
  system-images;android-26;google_apis;arm64-v8a                                           | 2            | Google APIs ARM 64 v8a System Image
  system-images;android-26;google_apis;x86                                                 | 16           | Google APIs Intel x86 Atom System Image
  system-images;android-26;google_apis;x86_64                                              | 16           | Google APIs Intel x86_64 Atom System Image
  system-images;android-26;google_apis_playstore;x86                                       | 7            | Google Play Intel x86 Atom System Image
  system-images;android-27;android-tv;x86                                                  | 9            | Android TV Intel x86 Atom System Image
  system-images;android-27;default;arm64-v8a                                               | 2            | ARM 64 v8a System Image
  system-images;android-27;default;x86                                                     | 1            | Intel x86 Atom System Image
  system-images;android-27;default;x86_64                                                  | 1            | Intel x86_64 Atom System Image
  system-images;android-27;google_apis;arm64-v8a                                           | 2            | Google APIs ARM 64 v8a System Image
  system-images;android-27;google_apis;x86                                                 | 11           | Google APIs Intel x86 Atom System Image
  system-images;android-27;google_apis_playstore;x86                                       | 3            | Google Play Intel x86 Atom System Image
  system-images;android-28;android-tv;x86                                                  | 10           | Android TV Intel x86 Atom System Image
  system-images;android-28;android-wear-cn;x86                                             | 9            | China version of Wear OS Intel x86 Atom System Image
  system-images;android-28;android-wear;x86                                                | 9            | Wear OS Intel x86 Atom System Image
  system-images;android-28;default;arm64-v8a                                               | 2            | ARM 64 v8a System Image
  system-images;android-28;default;x86                                                     | 4            | Intel x86 Atom System Image
  system-images;android-28;default;x86_64                                                  | 4            | Intel x86_64 Atom System Image
  system-images;android-28;google_apis;arm64-v8a                                           | 2            | Google APIs ARM 64 v8a System Image
  system-images;android-28;google_apis;x86                                                 | 12           | Google APIs Intel x86 Atom System Image
  system-images;android-28;google_apis;x86_64                                              | 11           | Google APIs Intel x86_64 Atom System Image
  system-images;android-28;google_apis_playstore;arm64-v8a                                 | 2            | Google ARM64-V8a Play ARM 64 v8a System Image
  system-images;android-28;google_apis_playstore;x86                                       | 9            | Google Play Intel x86 Atom System Image
  system-images;android-28;google_apis_playstore;x86_64                                    | 8            | Google Play Intel x86_64 Atom System Image
  system-images;android-29;android-tv;x86                                                  | 3            | Android TV Intel x86 Atom System Image
  system-images;android-29;default;arm64-v8a                                               | 8            | ARM 64 v8a System Image
  system-images;android-29;default;x86                                                     | 8            | Intel x86 Atom System Image
  system-images;android-29;default;x86_64                                                  | 8            | Intel x86_64 Atom System Image
  system-images;android-29;google_apis;arm64-v8a                                           | 12           | Google APIs ARM 64 v8a System Image
  system-images;android-29;google_apis;x86                                                 | 12           | Google APIs Intel x86 Atom System Image
  system-images;android-29;google_apis;x86_64                                              | 12           | Google APIs Intel x86_64 Atom System Image
  system-images;android-29;google_apis_playstore;arm64-v8a                                 | 9            | Google Play ARM 64 v8a System Image
  system-images;android-29;google_apis_playstore;x86                                       | 8            | Google Play Intel x86 Atom System Image
  system-images;android-29;google_apis_playstore;x86_64                                    | 8            | Google Play Intel x86_64 Atom System Image
  system-images;android-30;android-tv;x86                                                  | 4            | Android TV Intel x86 Atom System Image
  system-images;android-30;android-wear-cn;arm64-v8a                                       | 10           | China version of Wear OS 3 - Preview ARM 64 v8a System Image
  system-images;android-30;android-wear-cn;x86                                             | 10           | China version of Wear OS 3 - Preview Intel x86 Atom System Image
  system-images;android-30;android-wear;arm64-v8a                                          | 11           | Wear OS 3 ARM 64 v8a System Image
  system-images;android-30;android-wear;x86                                                | 11           | Wear OS 3 Intel x86 Atom System Image
  system-images;android-30;aosp_atd;arm64-v8a                                              | 1            | AOSP ATD ARM 64 v8a System Image
  system-images;android-30;aosp_atd;x86                                                    | 1            | AOSP ATD Intel x86 Atom System Image
  system-images;android-30;aosp_atd;x86_64                                                 | 2            | AOSP ATD Intel x86_64 Atom System Image
  system-images;android-30;default;arm64-v8a                                               | 2            | ARM 64 v8a System Image
  system-images;android-30;default;x86_64                                                  | 11           | Intel x86_64 Atom System Image
  system-images;android-30;google-tv;x86                                                   | 4            | Google TV Intel x86 Atom System Image
  system-images;android-30;google_apis;arm64-v8a                                           | 12           | Google APIs ARM 64 v8a System Image
  system-images;android-30;google_apis;x86                                                 | 10           | Google APIs Intel x86 Atom System Image
  system-images;android-30;google_apis;x86_64                                              | 12           | Google APIs Intel x86_64 Atom System Image
  system-images;android-30;google_apis_playstore;arm64-v8a                                 | 10           | Google Play ARM 64 v8a System Image
  system-images;android-30;google_apis_playstore;x86                                       | 9            | Google Play Intel x86 Atom System Image
  system-images;android-30;google_apis_playstore;x86_64                                    | 10           | Google Play Intel x86_64 Atom System Image
  system-images;android-30;google_atd;arm64-v8a                                            | 1            | Google APIs ATD ARM 64 v8a System Image
  system-images;android-30;google_atd;x86                                                  | 1            | Google APIs ATD Intel x86 Atom System Image
  system-images;android-30;google_atd;x86_64                                               | 2            | Google APIs ATD Intel x86_64 Atom System Image
  system-images;android-31;android-tv;arm64-v8a                                            | 4            | Android TV ARM 64 v8a System Image
  system-images;android-31;android-tv;x86                                                  | 4            | Android TV Intel x86 Atom System Image
  system-images;android-31;default;arm64-v8a                                               | 4            | ARM 64 v8a System Image
  system-images;android-31;default;x86_64                                                  | 5            | Intel x86_64 Atom System Image
  system-images;android-31;google-tv;arm64-v8a                                             | 4            | Google TV ARM 64 v8a System Image
  system-images;android-31;google-tv;x86                                                   | 4            | Google TV Intel x86 Atom System Image
  system-images;android-31;google_apis;arm64-v8a                                           | 10           | Google APIs ARM 64 v8a System Image
  system-images;android-31;google_apis;x86_64                                              | 13           | Google APIs Intel x86_64 Atom System Image
  system-images;android-31;google_apis_playstore;arm64-v8a                                 | 9            | Google Play ARM 64 v8a System Image
  system-images;android-31;google_apis_playstore;x86_64                                    | 9            | Google Play Intel x86_64 Atom System Image
  system-images;android-32;android-desktop;arm64-v8a                                       | 5            | Desktop ARM 64 v8a System Image
  system-images;android-32;android-desktop;x86_64                                          | 5            | Desktop Intel x86_64 Atom System Image
  system-images;android-32;google_apis;arm64-v8a                                           | 6            | Google APIs ARM 64 v8a System Image
  system-images;android-32;google_apis;x86_64                                              | 7            | Google APIs Intel x86_64 Atom System Image
  system-images;android-32;google_apis_playstore;arm64-v8a                                 | 3            | Google Play ARM 64 v8a System Image
  system-images;android-32;google_apis_playstore;x86_64                                    | 3            | Google Play Intel x86_64 Atom System Image
  system-images;android-33;android-tv;arm64-v8a                                            | 5            | Android TV ARM 64 v8a System Image
  system-images;android-33;android-tv;x86                                                  | 5            | Android TV Intel x86 Atom System Image
  system-images;android-33;google-tv;arm64-v8a                                             | 5            | Google TV ARM 64 v8a System Image
  system-images;android-33;google-tv;x86                                                   | 5            | Google TV Intel x86 Atom System Image
  system-images;android-33;google_apis;arm64-v8a                                           | 11           | Google APIs ARM 64 v8a System Image
  system-images;android-33;google_apis;x86_64                                              | 11           | Google APIs Intel x86_64 Atom System Image
  system-images;android-33;google_apis_playstore;arm64-v8a                                 | 7            | Google Play ARM 64 v8a System Image
  system-images;android-33;google_apis_playstore;x86_64                                    | 7            | Google Play Intel x86_64 Atom System Image
  system-images;android-TiramisuPrivacySandbox;google_apis_playstore;arm64-v8a             | 9            | Google Play ARM 64 v8a System Image
  system-images;android-TiramisuPrivacySandbox;google_apis_playstore;x86_64                | 9            | Google Play Intel x86_64 Atom System Image
  system-images;android-UpsideDownCake;google_apis;arm64-v8a                               | 5            | Google APIs ARM 64 v8a System Image
  system-images;android-UpsideDownCake;google_apis;x86_64                                  | 5            | Google APIs Intel x86_64 Atom System Image
  system-images;android-UpsideDownCake;google_apis_playstore;arm64-v8a                     | 5            | Google Play ARM 64 v8a System Image
  system-images;android-UpsideDownCake;google_apis_playstore;x86_64                        | 5            | Google Play Intel x86_64 Atom System Image
  system-images;android-UpsideDownCakePrivacySandbox;google_apis_playstore;arm64-v8a       | 1            | Google Play ARM 64 v8a System Image
  system-images;android-UpsideDownCakePrivacySandbox;google_apis_playstore;x86_64          | 1            | Google Play Intel x86_64 Atom System Image

Available Updates:
  ID      | Installed | Available
  ------- | -------   | -------

# Check that aidl can be executed
# Search for Aidl
# Run '/home/meta/.buildozer/android/platform/android-sdk/build-tools/34.0.0-rc4/aidl'
# Cwd None
# Downloading platform api target if necessary
# Android packages installation done.
# Run ['/home/meta/.local/python_venvs/py311/bin/python', '-m', 'pythonforandroid.toolchain', 'aab', '-h', '--color=always', '--storage-dir=/tank/home/meta/_git/buildozer_helloworld/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a', '--ndk-api=21', '--ignore-setup-py', '--debug']
# Cwd /tank/home/meta/_git/buildozer_helloworld/.buildozer/android/platform/python-for-android
[WARNING]: prerequisites.py is experimental and does not support all prerequisites yet.
[WARNING]: Please report any issues to the python-for-android issue tracker.
/tank/home/meta/_git/buildozer_helloworld/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py:59: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
  if LooseVersion(cur_ver) < LooseVersion(version):
[WARNING]: prerequisites.py is experimental and does not support all prerequisites yet.
[WARNING]: Please report any issues to the python-for-android issue tracker.
usage: toolchain.py aab [-h] [--debug] [--color {always,never,auto}]
                        [--sdk-dir SDK_DIR] [--ndk-dir NDK_DIR]
                        [--android-api ANDROID_API]
                        [--ndk-version NDK_VERSION] [--ndk-api NDK_API]
                        [--symlink-bootstrap-files]
                        [--storage-dir STORAGE_DIR] [--arch ARCH]
                        [--dist-name DIST_NAME] [--requirements REQUIREMENTS]
                        [--recipe-blacklist RECIPE_BLACKLIST]
                        [--blacklist-requirements BLACKLIST_REQUIREMENTS]
                        [--bootstrap BOOTSTRAP] [--hook HOOK] [--force-build]
                        [--no-force-build] [--require-perfect-match]
                        [--no-require-perfect-match] [--allow-replace-dist]
                        [--no-allow-replace-dist]
                        [--local-recipes LOCAL_RECIPES]
                        [--activity-class-name ACTIVITY_CLASS_NAME]
                        [--service-class-name SERVICE_CLASS_NAME]
                        [--java-build-tool {auto,ant,gradle}] [--copy-libs]
                        [--no-copy-libs] [--add-asset ASSETS]
                        [--add-resource RESOURCES] [--private PRIVATE]
                        [--use-setup-py] [--ignore-setup-py] [--release]
                        [--with-debug-symbols] [--keystore KEYSTORE]
                        [--signkey SIGNKEY] [--keystorepw KEYSTOREPW]
                        [--signkeypw SIGNKEYPW]

options:
  -h, --help            show this help message and exit
  --debug               Display debug output and all build info
  --color {always,never,auto}
...

I'll stop here, because I mentioned this earlier and it seems it went unnoticed : how come I get something that looks like one of the very first commands failed and returns it's --help output.

@petaflot
Copy link
Author

petaflot commented Jun 5, 2023

the issue with the buildozer config which does not seem so obvious.

apologies for that immensely stupid comment. my brain must have skipped a beat reading the doc.

@petaflot
Copy link
Author

petaflot commented Jun 20, 2023

FIY: I asked a friend of mine (ubuntu user) to try and build the hello world example as per https://github.com/petaflot/buildozer_helloworld (complete with buildozer conf), this also fails. here is the end of the build log:

[INFO]:    *** PYTHON PACKAGE / PROJECT INSTALL STAGE FOR ARCH: arm64-v8a ***
[INFO]:    The requirements (certifi, chardet, idna, requests, urllib3) don't have recipes, attempting to install them with pip
[INFO]:    If this fails, it may mean that the module has compiled components and needs a recipe.
[INFO]:    -> directory context /home/ndesir/lutolf/buildozer_helloworld/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build
[DEBUG]:   -> running python3 -m venv venv
[INFO]:    Upgrade pip to latest version
[DEBUG]:   -> running bash -c source venv/bin/activate && pip install -U pip
[DEBUG]:        Ignoring "sys._home = value" override
[DEBUG]:        WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
[DEBUG]:        Requirement already satisfied: pip in ./venv/lib/python3.10/site-packages (22.3.1)
[DEBUG]:        WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/pip/
[DEBUG]:        WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/pip/
[DEBUG]:        WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/pip/
[DEBUG]:        WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/pip/
[DEBUG]:        WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/pip/
[DEBUG]:        Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
[DEBUG]:        WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
[DEBUG]:        Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
[DEBUG]:        WARNING: There was an error checking the latest version of pip.
[DEBUG]:   
[INFO]:    Install Cython in case one of the modules needs it to build
[DEBUG]:   -> running bash -c venv/bin/pip install Cython
[DEBUG]:        Ignoring "sys._home = value" override
[DEBUG]:        WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
[DEBUG]:        WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
[DEBUG]:        WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
[DEBUG]:        WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
[DEBUG]:        WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
[DEBUG]:        WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
[DEBUG]:        Could not fetch URL https://pypi.org/simple/cython/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/cython/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
[DEBUG]:        ERROR: Could not find a version that satisfies the requirement Cython (from versions: none)
[DEBUG]:        ERROR: No matching distribution found for Cython
[DEBUG]:        WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
[DEBUG]:        Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
[DEBUG]:        WARNING: There was an error checking the latest version of pip.
[DEBUG]:   
Exception in thread background thread for pid 332822:
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/ndesir/.local/lib/python3.8/site-packages/sh.py", line 1641, in wrap
    fn(*rgs, **kwargs)
  File "/home/ndesir/.local/lib/python3.8/site-packages/sh.py", line 2569, in background_thread
    handle_exit_code(exit_code)
  File "/home/ndesir/.local/lib/python3.8/site-packages/sh.py", line 2269, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/home/ndesir/.local/lib/python3.8/site-packages/sh.py", line 869, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1: 

  RAN: /usr/bin/bash -c 'venv/bin/pip install Cython'

  STDOUT:
Ignoring "sys._home = value" override
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
Could not fetch URL https://pypi.org/simple/cython/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/cython/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
ERROR: Could not find a version that satisfies the requirement Cython (from versions: none)
ERROR: No matching distribution found for Cython
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
WARNING: There was an error checking the latest version of pip.


  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 "/home/ndesir/lutolf/buildozer_helloworld/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 1312, in <module>
    main()
  File "/home/ndesir/lutolf/buildozer_helloworld/.buildozer/android/platform/python-for-android/pythonforandroid/entrypoints.py", line 18, in main
    ToolchainCL()
  File "/home/ndesir/lutolf/buildozer_helloworld/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 734, in __init__
    getattr(self, command)(args)
  File "/home/ndesir/lutolf/buildozer_helloworld/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 153, in wrapper_func
    build_dist_from_args(ctx, dist, args)
  File "/home/ndesir/lutolf/buildozer_helloworld/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 212, in build_dist_from_args
    build_recipes(build_order, python_modules, ctx,
  File "/home/ndesir/lutolf/buildozer_helloworld/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 528, in build_recipes
    run_pymodules_install(
  File "/home/ndesir/lutolf/buildozer_helloworld/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 713, in run_pymodules_install
    shprint(sh.bash, '-c', (
  File "/home/ndesir/lutolf/buildozer_helloworld/.buildozer/android/platform/python-for-android/pythonforandroid/logger.py", line 167, in shprint
    for line in output:
  File "/home/ndesir/.local/lib/python3.8/site-packages/sh.py", line 915, in next
    self.wait()
  File "/home/ndesir/.local/lib/python3.8/site-packages/sh.py", line 845, in wait
    self.handle_command_exit_code(exit_code)
  File "/home/ndesir/.local/lib/python3.8/site-packages/sh.py", line 869, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1: 

  RAN: /usr/bin/bash -c 'venv/bin/pip install Cython'

  STDOUT:
Ignoring "sys._home = value" override
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/cython/
Could not fetch URL https://pypi.org/simple/cython/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/cython/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
ERROR: Could not find a version that satisfies the requirement Cython (from versions: none)
ERROR: No matching distribution found for Cython
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
WARNING: There was an error checking the latest version of pip.


  STDERR:







# Command failed: ['/usr/bin/python3', '-m', 'pythonforandroid.toolchain', 'create', '--dist_name=buildozer_helloworld', '--bootstrap=sdl2', '--requirements=python3,kivy', '--arch=arm64-v8a', '--arch=armeabi-v7a', '--copy-libs', '--color=always', '--storage-dir=/home/ndesir/lutolf/buildozer_helloworld/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a', '--ndk-api=21', '--ignore-setup-py', '--debug']
# ENVIRONMENT:
#     GJS_DEBUG_TOPICS = 'JS ERROR;JS LOG'
#     LESSOPEN = '| /usr/bin/lesspipe %s'
#     LANGUAGE = 'fr_CH:fr'
#     USER = 'ndesir'
#     SSH_AGENT_PID = '1840'
#     XDG_SESSION_TYPE = 'x11'
#     SHLVL = '1'
#     PICO_EXTRAS_PATH = '/home/ndesir/pico/pico-extras'
#     HOME = '/home/ndesir'
#     OLDPWD = '/home/ndesir/lutolf'
#     DESKTOP_SESSION = 'ubuntu'
#     GIO_LAUNCHED_DESKTOP_FILE = '/usr/share/applications/debian-xterm.desktop'
#     GNOME_SHELL_SESSION_MODE = 'ubuntu'
#     GTK_MODULES = 'gail:atk-bridge'
#     MANAGERPID = '1644'
#     DBUS_SESSION_BUS_ADDRESS = 'unix:path=/run/user/1000/bus'
#     GIO_LAUNCHED_DESKTOP_FILE_PID = '26500'
#     IM_CONFIG_PHASE = '1'
#     LOGNAME = 'ndesir'
#     WINDOWID = '75497508'
#     JOURNAL_STREAM = '8:47014'
#     _ = '/usr/bin/sh'
#     XTERM_SHELL = '/bin/bash'
#     XDG_SESSION_CLASS = 'user'
#     USERNAME = 'ndesir'
#     TERM = 'xterm'
#     GNOME_DESKTOP_SESSION_ID = 'this-is-deprecated'
#     WINDOWPATH = '2'
#     PATH = '/home/ndesir/.buildozer/android/platform/apache-ant-1.9.4/bin:/home/ndesir/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'
#     SESSION_MANAGER = 'local/duvel:@/tmp/.ICE-unix/1877,unix/duvel:/tmp/.ICE-unix/1877'
#     INVOCATION_ID = '9fb50c1a991c4128b7f0de933c62b7c5'
#     XDG_MENU_PREFIX = 'gnome-'
#     XDG_RUNTIME_DIR = '/run/user/1000'
#     DISPLAY = ':0'
#     LANG = 'fr_CH.UTF-8'
#     XDG_CURRENT_DESKTOP = 'ubuntu:GNOME'
#     XMODIFIERS = '@im=ibus'
#     XDG_SESSION_DESKTOP = 'ubuntu'
#     XAUTHORITY = '/run/user/1000/gdm/Xauthority'
#     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:'
#     PICO_EXAMPLES_PATH = '/home/ndesir/pico/pico-examples'
#     SSH_AUTH_SOCK = '/run/user/1000/keyring/ssh'
#     SHELL = '/bin/bash'
#     QT_ACCESSIBILITY = '1'
#     GDMSESSION = 'ubuntu'
#     LESSCLOSE = '/usr/bin/lesspipe %s %s'
#     GPG_AGENT_INFO = '/run/user/1000/gnupg/S.gpg-agent:0:1'
#     GJS_DEBUG_OUTPUT = 'stderr'
#     QT_IM_MODULE = 'ibus'
#     PWD = '/home/ndesir/lutolf/buildozer_helloworld'
#     XDG_CONFIG_DIRS = '/etc/xdg/xdg-ubuntu:/etc/xdg'
#     PICO_SDK_PATH = '/home/ndesir/pico/pico-sdk'
#     XTERM_LOCALE = 'fr_CH.UTF-8'
#     XDG_DATA_DIRS = '/usr/share/ubuntu:/home/ndesir/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop'
#     XTERM_VERSION = 'XTerm(353)'
#     PICO_PLAYGROUND_PATH = '/home/ndesir/pico/pico-playground'
#     PACKAGES_PATH = '/home/ndesir/.buildozer/android/packages'
#     ANDROIDSDK = '/home/ndesir/.buildozer/android/platform/android-sdk'
#     ANDROIDNDK = '/home/ndesir/.buildozer/android/platform/android-ndk-r25b'
#     ANDROIDAPI = '32'
#     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

Note: I'm pretty darn sure he installed cython after it failed the first time.

@RobertFlatt
Copy link
Contributor

RobertFlatt commented Jun 20, 2023

Of course I can't vouch for the validity of some random repository, specially when it contains comments like "This is WIP : just started, no guarantee to work".

And in a similar fashion I cannot be "darn sure" about the behavior of your friend.

Messages in the log we can perhaps agree on. The log above contains:

https://github.com/Android-for-Python/Android-for-Python-Users#ssl-module-in-python-is-not-available

This means one of the the install dependencies is missing, which makes pip unable to find Cython. As it says in that link the fix is to install all the dependencies (in case more than one was missed).

Everything you need to know to build Hello World is here https://github.com/Android-for-Python/Android-for-Python-Users#install

@petaflot
Copy link
Author

@RobertFlatt it is not just "some random repository", it is a repository I created SPECIFICALLY for this purpose according to the doc I was given IN THIS EXACT THREAD. I just added some extra stuff like a README.md for future purposes (such as compiling for iOS), but please take a few seconds to read the code before making such comments.

my friend is labelled by many as an "übergeek", he built a computer-controlled robot when he was 12 (he was born 1977) out of spare parts, and you would probably be amazed at what he can do now (current project is a double-output EV charger that will do load-balancing with domestic appliances). He as been an Internet provider for years https://saitis.net/ and built his own company, https://nimag.net/ by working in a paid job for just two days a week, he has 2 houses and a 300m³ workshop. He does low level electronics, refrigeration, works with OpenCV and other stuff, http://lama.pas.nu/, was recently asked for counseling to make electric airplanes... do I need to write more? He's the kind of guy who is going to create inodes for obsolete touch screens, you name it.

When I told him about buildozer, he was VERY enthousiastic about being able to build some APKs, but just as disappointed that it did not work as expected.

I am personally deep into some legal lawsuit that is just about ruining my life because my father and my older sister have been [can't comment], being able to build an app would be massively useful and I don't really have the time to try everything again and again in every way possible.

@petaflot
Copy link
Author

petaflot commented Jun 20, 2023

btw, a 300m² workshop in Switzerland costs something like 7k$/month.

FYI, the app I am writing compiles fine with github workflows, too. it's just a pain in the.

@petaflot
Copy link
Author

"This is WIP : just started, no guarantee to work".

simply because THE CURRENT ISSUE is still open. what's so strange and/or wrong about that?

@RobertFlatt
Copy link
Contributor

I hear your pain, but most it it is not something I have any control over.

If you have a specific technical question about Buildozer/p4a, ask in a clear way and share a log, I will try to point you in what I think is the right direction.

@petaflot
Copy link
Author

petaflot commented Jun 21, 2023

my question is:

starting "from scratch" (with a x86_64 CPU, some RAM and a blank HDD), how to get buildozer to compile an example "hello world" app such as the one here https://github.com/petaflot/buildozer_helloworld that - as stated earlier, was setup for the exact purpose of solving the current issue and is at the moment nothing more than

#!/usr/bin/env python
import kivy
kivy.require('2.1.0')

from kivy.app import App
from kivy.uix.label import Label

class MyApp(App):
    def build(self):
        self.title = 'Hello World!'
        return Label(text='Alice says hi')

if __name__ == '__main__':
    MyApp().run()
[app]
title = Hello World!
package.name = buildozer_helloworld
package.domain = org.test
source.dir = .
source.include_exts = py,png,jpg,kv,atlas
version = 0.1
requirements = python3,kivy
orientation = portrait
osx.python_version = 3
osx.kivy_version = 1.9.1
fullscreen = 0
android.api = 32
android.archs = arm64-v8a, armeabi-v7a
android.allow_backup = True
ios.kivy_ios_url = https://github.com/kivy/kivy-ios
ios.kivy_ios_branch = master
ios.ios_deploy_url = https://github.com/phonegap/ios-deploy
ios.ios_deploy_branch = 1.10.0
ios.codesign.allowed = false
[buildozer]
log_level = 2
warn_on_root = 1

and finally

#!/bin/bash

# build for Android
buildozer android debug

thank you.

@RobertFlatt
Copy link
Contributor

Assuming you have a Linux machine:

As is says here https://github.com/Android-for-Python/Android-for-Python-Users#install

  1. follow the Buildozer install instructions
  2. create main.py there is a link to the contents
  3. create buildozer.spec as described in that link, don't change anything other that android.api.
  4. buildozer android debug

And if buildozer fails to compile https://github.com/Android-for-Python/Android-for-Python-Users#if-buildozer-fails-to-compile

If there is an issue we work from the message in the log.

@petaflot
Copy link
Author

please state distribution, version, packages installed. I will try in a virtualbox machine. thank you.

@RobertFlatt
Copy link
Contributor

There are lost of choices, but Ubuntu 22.04 is good.
The install instructions list any additional packages.

If you have a modern Windows machine you can use WSL.

@killatonna1
Copy link

I have a similar problem. requirements and .spec

Can someone suggest what to do. Found a more or less relevant thread here. It seems that I checked the packages and files, but it did not help. I rebuilt the project and the environment 3 times according to the documentation. All three times the same. obviously I'm missing something, something very stupid and simple.

STDOUT:
/home/sergei/PythonProjects/GPS_APP/kivy_venv/lib/python3.11/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/sergei/PythonProjects/GPS_APP/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/pyjnius-sdl2/arm64-v8a__ndk_target_21/pyjnius/jnius/jnius.pyx
tree = Parsing.p_module(s, pxd, full_module_name)

Error compiling Cython file:

...
import sys
import traceback

include "jnius_compat.pxi"
include "jni.pxi"
include "config.pxi"
^

jnius/jnius.pyx:100:0: 'config.pxi' not found

Error compiling Cython file:

...

include "jnius_compat.pxi"
include "jni.pxi"
include "config.pxi"

IF JNIUS_PLATFORM == "android":
^

jnius/jnius.pyx:102:3: Compile-time name 'JNIUS_PLATFORM' not defined

Error compiling Cython file:

...
include "jni.pxi"
include "config.pxi"

IF JNIUS_PLATFORM == "android":
include "jnius_jvm_android.pxi"
ELIF JNIUS_PLATFORM == "win32":
^

jnius/jnius.pyx:104:5: Compile-time name 'JNIUS_PLATFORM' not defined

Error compiling Cython file:

...
include "config.pxi"
^

jnius/jnius_jvm_dlopen.pxi:1:0: 'config.pxi' not found

STDERR:

@RobertFlatt
Copy link
Contributor

https://github.com/Android-for-Python/Android-for-Python-Users#configpxi-not-found

@Julian-O
Copy link
Contributor

This whole thing belongs in a support channel. It appears to be configuration issues.

If you come up with a specific bug that needs to be fixed by the p4a team, please come back here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Needs Triage
Development

No branches or pull requests

6 participants