kivy / buildozer

Generic Python packager for Android and iOS
https://buildozer.readthedocs.io
MIT License
1.75k stars 503 forks source link

ModuleNotFoundError: No module named 'kivy._clock' #1509

Closed randdvorak closed 1 year ago

randdvorak commented 2 years ago

Versions

Description

Built apk successfully, but experienced runtime error: ModuleNotFoundError: No module named 'kivy._clock'. Kivy was indeed built, but seemingly is absent:

buildozer.spec

Command:

[app]

# (str) Title of your application
title = PriceLazr

# (str) Package name
package.name = pricelazr

# (str) Package domain (needed for android/ios packaging)
package.domain = com.centesimiae

# (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,kv,png,jpg,jpeg,atlas,ttf,json,mp4

# (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 = log, pyc

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

# (list) List of exclusions using pattern matching
source.exclude_patterns = buildozer 

# (str) Application versioning (method 1)
version = 1.0

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

# (list) Application requirements
# comma separated e.g. requirements = sqlite3,k
requirements = python3,kivy,https://github.com/kivymd/KivyMD/archive/master.zip,sdl2_ttf==2.0.15,pillow,ffpyplayer,plyer,pyjnius

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

# (list) Garden requirements
#garden_requirements =

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

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

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

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

#
# OSX Specific
#

#
# author = © Centesimiae LLC

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

# Kivy version to use
# osx.kivy_version = 2.0.0

#
# Android specific
#

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

# (string) Presplash background color (for new 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

# (list) Permissions
android.permissions = INTERNET, ACCESS_NETWORK_STATE

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

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

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

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

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

# (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 = True

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

# (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 (currently works only with sdl2_gradle
# bootstrap)
#android.add_aars =

# (list) Gradle dependencies to add (currently works only with sdl2_gradle
# bootstrap)
android.gradle_dependencies = 'com.google.firebase:firebase-ads:10.2.0'

# (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_gradle_repositories =

# (list) Java classes to add as activities to the manifest.
#android.add_activities = org.kivy.android.PythonActivity

# (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 = com.google.android.gms.ads.APPLICATION_ID={ca-app-pub-5365730785847810~3261242833}

# (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) Copy library instead of making a libpymodules.so
#android.copy_libs = 1

# (str) The Android arch to build for, choices: armeabi-v7a, arm64-v8a, x86, x86_64
# android.arch = armeabi-v7a
android.arch = x86_64

# (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

#
# Python for android (p4a) specific
#

# (str) python-for-android fork to use, defaults to upstream (kivy)
#p4a.fork = kivy

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

# (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 =

# (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 =

#
# 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.7.0

# (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) Name of the certificate to use for signing the release version
#ios.codesign.release = %(ios.codesign.debug)s

[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, .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

Dockerfile:

# Dockerfile for providing buildozer
#
# Build with:
# docker build --tag=kivy/buildozer .
# 
# In order to give the container access to your current working directory
# it must be mounted using the --volume option.
# Run with (e.g. `buildozer --version`):
# docker run \
#   --volume "$HOME/.buildozer":/home/user/.buildozer \
#   --volume "$PWD":/home/user/hostcwd \
#   kivy/buildozer --version
#
# Or for interactive shell:
# docker run --interactive --tty --rm \
#   --volume "$HOME/.buildozer":/home/user/.buildozer \
#   --volume "$PWD":/home/user/hostcwd \
#   --entrypoint /bin/bash \
#   kivy/buildozer
#
# If you get a `PermissionError` on `/home/user/.buildozer/cache`,
# try updating the permissions from the host with:
# sudo chown $USER -R ~/.buildozer
# Or simply recreate the directory from the host with:
# rm -rf ~/.buildozer && mkdir ~/.buildozer

FROM ubuntu:22.04

ENV USER="user"
ENV HOME_DIR="/home/${USER}"
ENV WORK_DIR="${HOME_DIR}/hostcwd" \
    SRC_DIR="${HOME_DIR}/src" \
    PATH="${HOME_DIR}/.local/bin:${PATH}"

# configures locale
RUN apt update -qq > /dev/null \
    && DEBIAN_FRONTEND=noninteractive apt install -qq --yes --no-install-recommends \
    locales && \
    locale-gen en_US.UTF-8
ENV LANG="en_US.UTF-8" \
    LANGUAGE="en_US.UTF-8" \
    LC_ALL="en_US.UTF-8"

# system requirements to build most of the recipes
RUN apt update -qq > /dev/null \
    && DEBIAN_FRONTEND=noninteractive apt install -qq --yes --no-install-recommends \
    autoconf \
    automake \
    build-essential \
    ccache \
    cmake \
    gettext \
    git \
    libffi-dev \
    libltdl-dev \
    libssl-dev \
    libtool \
    openjdk-17-jdk \
    patch \
    pkg-config \
    python3-pip \
    python3-setuptools \
    sudo \
    unzip \
    zip \
    zlib1g-dev

# prepares non root env
RUN useradd --create-home --shell /bin/bash ${USER}
# with sudo access and no password
RUN usermod -append --groups sudo ${USER}
RUN echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

USER ${USER}
WORKDIR ${WORK_DIR}
COPY --chown=user:user . ${SRC_DIR}

# installs buildozer and dependencies
RUN pip3 install --user --upgrade Cython wheel pip virtualenv toml pep517 colorama jinja2 appdirs ${SRC_DIR}

ENTRYPOINT ["buildozer"]

Logs


2022-10-03 03:17:09.010 5849-5882/com.centesimiae.pricelazr I/python: Initialized python
2022-10-03 03:17:09.010 5849-5882/com.centesimiae.pricelazr I/python: AND: Init threads
2022-10-03 03:17:09.013 5849-5882/com.centesimiae.pricelazr I/python: testing python print redirection
2022-10-03 03:17:09.015 5849-5882/com.centesimiae.pricelazr I/python: Android path ['.', '/data/user/0/com.centesimiae.pricelazr/files/app/_python_bundle/stdlib.zip', '/data/user/0/com.centesimiae.pricelazr/files/app/_python_bundle/modules', '/data/user/0/com.centesimiae.pricelazr/files/app/_python_bundle/site-packages']
2022-10-03 03:17:09.015 5849-5882/com.centesimiae.pricelazr I/python: os.environ is environ({'PATH': '/product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin', 'ANDROID_BOOTLOGO': '1', 'ANDROID_ROOT': '/system', 'ANDROID_ASSETS': '/system/app', 'ANDROID_DATA': '/data', 'ANDROID_STORAGE': '/storage', 'ANDROID_ART_ROOT': '/apex/com.android.art', 'ANDROID_I18N_ROOT': '/apex/com.android.i18n', 'ANDROID_TZDATA_ROOT': '/apex/com.android.tzdata', 'EXTERNAL_STORAGE': '/sdcard', 'ASEC_MOUNTPOINT': '/mnt/asec', 'DOWNLOAD_CACHE': '/data/cache', 'BOOTCLASSPATH': '/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/framework-graphics.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/apex/com.android.i18n/javalib/core-icu4j.jar:/apex/com.android.adservices/javalib/framework-adservices.jar:/apex/com.android.adservices/javalib/framework-sdksandbox.jar:/apex/com.android.appsearch/javalib/framework-appsearch.jar:/apex/com.android.btservices/javalib/framework-bluetooth.jar:/apex/com.android.conscrypt/javalib/conscrypt.jar:/apex/com.android.ipsec/javalib/android.net.ipsec.ike.jar:/apex/com.android.media/javalib/updatable-media.jar:/apex/com.android.mediaprovider/javalib/framework-mediaprovider.jar:/apex/com.android.ondevicepersonalization/javalib/framework-ondevicepersonalization.jar:/apex/com.android.os.statsd/javalib/framework-statsd.jar:/apex/com.android.permission/javalib/framework-permission.jar:/apex/com.android.permission/javalib/framework-permission-s.jar:/apex/com.android.scheduling/javalib/framework-scheduling.jar:/apex/com.android.sdkext/javalib/framework-sdkextensions.jar:/apex/com.android.tethering/javalib/framework-connectivity.jar:/apex/com.android.tethering/javalib/framework-connectivity-t.jar:/apex/com.android.tethering/javalib/framework-tethering.jar:/apex/com.android.uwb/javalib/framework-uwb.jar:/apex/com.android.wifi/javalib/framework-wifi.jar', 'DEX2OATBOOTCLASSPATH': '/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/framework-graphics.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/apex/com.android.i18n/javalib/core-icu4j.jar', 'SYSTEMSERVERCLASSPATH': '/system/framework/com.android.location.provider.jar:/system/framework/services.jar:/apex/com.android.adservices/javalib/service-adservices.jar:/apex/com.android.adservices/javalib/service-sdksandbox.jar:/apex/com.android.appsearch/javalib/service-appsearch.jar:/apex/com.android.art/javalib/service-art.jar:/apex/com.android.media/javalib/service-media-s.jar:/apex/com.android.permission/javalib/service-permission.jar', 'STANDALONE_SYSTEMSERVER_JARS': '/apex/com.android.btservices/javalib/service-bluetooth.jar:/apex/com.android.os.statsd/javalib/service-statsd.jar:/apex/com.android.scheduling/javalib/service-scheduling.jar:/apex/com.android.tethering/javalib/service-connectivity.jar:/apex/com.android.uwb/javalib/service-uwb.jar:/apex/com.android.wifi/javalib/service-wifi.jar', 'ANDROID_SOCKET_zygote': '22', 'ANDROID_SOCKET_usap_pool_primary': '23', 'TMPDIR': '/data/user/0/com.centesimiae.pricelazr/cache', 'ANDROID_ENTRYPOINT': 'main.pyc', 'ANDROID_ARGUMENT': '/data/user/0/com.centesimiae.pricelazr/files/app', 'ANDROID_APP_PATH': '/data/user/0/com.centesimiae.pricelazr/files/app', 'ANDROID_PRIVATE': '/data/user/0/com.centesimiae.pricelazr/files', 'ANDROID_UNPACK': '/data/user/0/com.centesimiae.pricelazr/files/app', 'PYTHONHOME': '/data/user/0/com.centesimiae.pricelazr/files/app', 'PYTHONPATH': '/data/user/0/com.ce
2022-10-03 03:17:09.016 5849-5882/com.centesimiae.pricelazr I/python: Android kivy bootstrap done. __name__ is __main__
2022-10-03 03:17:09.016 5849-5882/com.centesimiae.pricelazr I/python: AND: Ran string
2022-10-03 03:17:09.016 5849-5882/com.centesimiae.pricelazr I/python: Run user program, change dir and execute entrypoint
2022-10-03 03:17:09.056 5849-5875/com.centesimiae.pricelazr W/Parcel: Expecting binder but got null!
2022-10-03 03:17:09.089 5849-5849/com.centesimiae.pricelazr V/SDL: onWindowFocusChanged(): true
2022-10-03 03:17:09.181 5849-5849/com.centesimiae.pricelazr W/SDLThread: type=1400 audit(0.0:37): avc: granted { execute } for path="/data/user/0/com.centesimiae.pricelazr/files/app/_python_bundle/modules/_heapq.cpython-39.so" dev="dm-33" ino=132439 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file app=com.centesimiae.pricelazr
2022-10-03 03:17:09.345 5849-5849/com.centesimiae.pricelazr W/SDLThread: type=1400 audit(0.0:38): avc: granted { execute } for path="/data/user/0/com.centesimiae.pricelazr/files/app/_python_bundle/modules/math.cpython-39.so" dev="dm-33" ino=132477 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file app=com.centesimiae.pricelazr
2022-10-03 03:17:09.349 5849-5849/com.centesimiae.pricelazr W/SDLThread: type=1400 audit(0.0:39): avc: granted { execute } for path="/data/user/0/com.centesimiae.pricelazr/files/app/_python_bundle/modules/_bisect.cpython-39.so" dev="dm-33" ino=132419 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file app=com.centesimiae.pricelazr
2022-10-03 03:17:09.349 5849-5849/com.centesimiae.pricelazr W/SDLThread: type=1400 audit(0.0:40): avc: granted { execute } for path="/data/user/0/com.centesimiae.pricelazr/files/app/_python_bundle/modules/_random.cpython-39.so" dev="dm-33" ino=132449 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file app=com.centesimiae.pricelazr
2022-10-03 03:17:09.463 5849-5882/com.centesimiae.pricelazr I/python: [INFO   ] [Logger      ] Record log in /data/user/0/com.centesimiae.pricelazr/files/app/.kivy/logs/kivy_22-10-03_1.txt
2022-10-03 03:17:09.464 5849-5882/com.centesimiae.pricelazr I/python: [INFO   ] [Kivy        ] v2.0.0
2022-10-03 03:17:09.464 5849-5882/com.centesimiae.pricelazr I/python: [INFO   ] [Kivy        ] Installed at "/data/user/0/com.centesimiae.pricelazr/files/app/_python_bundle/site-packages/kivy/__init__.pyc"
2022-10-03 03:17:09.464 5849-5882/com.centesimiae.pricelazr I/python: [INFO   ] [Python      ] v3.9.9 (main, Oct  1 2022, 10:28:49) 
2022-10-03 03:17:09.465 5849-5882/com.centesimiae.pricelazr I/python: [Clang 12.0.8 (https://android.googlesource.com/toolchain/llvm-project c935d99d
2022-10-03 03:17:09.465 5849-5882/com.centesimiae.pricelazr I/python: [INFO   ] [Python      ] Interpreter at ""
2022-10-03 03:17:09.489 5849-5882/com.centesimiae.pricelazr I/python: [INFO   ] [Factory     ] 186 symbols loaded
2022-10-03 03:17:09.533 5849-5882/com.centesimiae.pricelazr I/python: [ERROR  ] [Clock       ] Unable to import kivy._clock. Have you perhaps forgotten to compile kivy? Kivy contains Cython code which needs to be compiled. A missing kivy._clock often indicates the Cython code has not been compiled. Please follow the installation instructions and make sure to compile Kivy
2022-10-03 03:17:09.533 5849-5882/com.centesimiae.pricelazr I/python:  Traceback (most recent call last):
2022-10-03 03:17:09.533 5849-5882/com.centesimiae.pricelazr I/python:    File "/home/user/hostcwd/.buildozer/android/app/main.py", line 17, in <module>
2022-10-03 03:17:09.534 5849-5882/com.centesimiae.pricelazr I/python:    File "/home/user/hostcwd/.buildozer/android/app/pricelazr.py", line 10, in <module>
2022-10-03 03:17:09.535 5849-5882/com.centesimiae.pricelazr I/python:    File "/home/user/hostcwd/.buildozer/android/platform/build-x86_64/build/python-installs/pricelazr/x86_64/kivy/core/window/__init__.py", line 17, in <module>
2022-10-03 03:17:09.536 5849-5882/com.centesimiae.pricelazr I/python:    File "/home/user/hostcwd/.buildozer/android/platform/build-x86_64/build/python-installs/pricelazr/x86_64/kivy/clock.py", line 466, in <module>
2022-10-03 03:17:09.536 5849-5882/com.centesimiae.pricelazr I/python:  ModuleNotFoundError: No module named 'kivy._clock'
2022-10-03 03:17:09.536 5849-5882/com.centesimiae.pricelazr I/python: Python for android ended.
2022-10-03 03:17:09.553 5849-5882/com.centesimiae.pricelazr D/HostConnection: createUnique: call
2022-10-03 03:17:09.554 5849-5882/com.centesimiae.pricelazr D/HostConnection: HostConnection::get() New Host Connection established 0x7434e73445d0, tid 5882
2022-10-03 03:17:09.567 5849-5882/com.centesimiae.pricelazr D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_YUV_Cache ANDROID_EMU_has_shared_slots_host_memory_allocator ANDROID_EMU_sync_buffer_data ANDROID_EMU_read_color_buffer_dma GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_3_0 
2022-10-03 03:17:09.832 5849-5855/? E/imiae.pricelazr: address format is <fd_num> not -1```
randdvorak commented 2 years ago

Changing buildozer.spec with the following solved the issue and I was able to run on the emulator.

android.archs= arm64-v8a, x86_64

Seems, building for the singular arch x86_64 is not correct.

If you're building an apk for distribution, a universal binary is needed, so the solution for only building for arch x86_64 amounts to: "Don't do that"

misl6 commented 2 years ago

Hi @randdvorak !

Can you post the full log? Can you share the config of the emulator?

randdvorak commented 2 years ago

Yeah, sorry that log is long gone. I got it working(see comment) and didn't look back.

misl6 commented 2 years ago

Seems, building for the singular arch x86_64 is not correct.

This is correct and feasible, so we may have an issue here. Feel free to share your emulator config and the full (runtime) log, as it may be super-helpful.

misl6 commented 1 year ago

Closing for inactivity. If the issue persists and looks like a bug to you, please re-open a new issue.

Otherwise, if you need some help, feel free to join us on Discord.

willygita commented 1 year ago

Hi @randdvorak !

Can you post the full log? Can you share the config of the emulator?

Logcat detail

05-22 01:18:54.783 7950 10932 I python : Initializing Python for Android 05-22 01:18:54.783 7950 10932 I python : Setting additional env vars from p4a_env_vars.txt 05-22 01:18:54.785 7950 10932 I python : Changing directory to the one provided by ANDROID_ARGUMENT 05-22 01:18:54.785 7950 10932 I python : /data/user/0/org.test.baseconverter/files/app 05-22 01:18:54.789 7950 10932 I python : Preparing to initialize python 05-22 01:18:54.790 7950 10932 I python : _python_bundle dir exists 05-22 01:18:54.790 7950 10932 I python : calculated paths to be... 05-22 01:18:54.790 7950 10932 I python : /data/user/0/org.test.baseconverter/files/app/_python_bundle/stdlib.zip:/data/user/0/org.test.baseconverter/files/app/_python_bundle/modules 05-22 01:18:54.802 7950 10932 I python : set wchar paths... 05-22 01:18:55.062 7950 10932 I python : Initialized python 05-22 01:18:55.062 7950 10932 I python : AND: Init threads 05-22 01:18:55.065 7950 10932 I python : testing python print redirection 05-22 01:18:55.068 7950 10932 I python : Android path ['.', '/data/user/0/org.test.baseconverter/files/app/_python_bundle/stdlib.zip', '/data/user/0/org.test.baseconverter/files/app/_python_bundle/modules', '/data/user/0/org.test.baseconverter/files/app/_python_bundle/site-packages'] 05-22 01:18:55.068 7950 10932 I python : os.environ is environ({'PATH': '/product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin', 'ANDROID_BOOTLOGO': '1', 'ANDROID_ROOT': '/system', 'ANDROID_ASSETS': '/system/app', 'ANDROID_DATA': '/data', 'ANDROID_STORAGE': '/storage', 'ANDROID_ART_ROOT': '/apex/com.android.art', 'ANDROID_I18N_ROOT': '/apex/com.android.i18n', 'ANDROID_TZDATA_ROOT': '/apex/com.android.tzdata', 'EXTERNAL_STORAGE': '/sdcard', 'ASEC_MOUNTPOINT': '/mnt/asec', 'BOOTCLASSPATH': '/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/core-icu4j.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/smartbondingservice.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/knoxanalyticssdk.jar:/system/framework/knoxsdk.jar:/system/framework/drutils.jar:/system/framework/framework-atb-backward-compatibility.jar:/system/framework/SmpsManager.jar:/system/framework/uibc_java.jar:/system/framework/ICDVerification.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/mediatek-ims-base.jar:/apex/com.android.conscrypt/javalib/conscrypt.jar:/apex/com.android.media/javalib/updatable-media.jar:/apex/com.android.mediaprovider/javalib/framework-mediaprovider.jar:/apex/com.android.os.statsd/javalib/framework-statsd.jar:/apex/com.android.permission/javalib/framework-permission.jar:/apex/com.android.sdkext/javalib/framework-sdkextensions.jar:/apex/com.android.wifi/javalib/framework-wifi.jar:/apex/com.android.tethering/javalib/framework-tethering.jar', 'DEX2OATBOOTCLASSPATH': '/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/core-icu4j.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/smartbondingservice.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/knoxanalyticssdk.jar:/system/framework/knoxsdk.jar:/system/framework/drutils.jar:/system/framework/framework-atb-backward-compatibility.jar:/system/framework/SmpsManager.jar:/system/framework/uibc_java.jar:/system/framework/ICDVerification.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/mediatek-ims-base.jar', 'SYSTEMSERVERCLASSPATH': '/system/framework/com.android.location.provider.jar:/system/framework/services.jar:/system/framework/ethernet-service.jar:/system/framework/ssrm.jar:/system/framework/semwifi-service.jar:/apex/com.android.permission/javalib/service-permission.jar:/apex/com.android.ipsec/javalib/android.net.ipsec.ike.jar', 'DOWNLOAD_CACHE': '/data/cache', 'ANDROID_SOCKET_zygote': '17', 'ANDROID_SOCKET_usap_pool_primary': '21', 'ANDROID_ENTRYPOINT': 'main.pyc', 'ANDROID_ARGUMENT': '/data/user/0/org.test.baseconverter/files/app', 'ANDROID_APP_PATH': '/data/user/0/org.test.baseconverter/files/app', 'ANDROID_PRIVATE': '/data/user/0/org.test.baseconverter/files', 'ANDROID_UNPACK': '/data/user/0/org.test.baseconverter/files/app', 'PYTHONHOME': '/data/user/0/org.test.baseconverter/files/app', 'PYTHONPATH': '/data/user/0/org.test.baseconverter/files/app:/data/user/0/org.test.baseconverter/files/app/lib', 'PYTHONOPTIMIZE': '2', 'P4A_BOOTSTRAP': 'SDL2', 'PYTHON_NAME': 'python', 'P4A_IS_WINDOWED': 'True', 'KIVY_ORIENTATION': 'Portrait', 'P4A_NUMERIC_VERSION': 'None', 'P4A_MINSDK': '21', 'LC_CTYPE': 'C.UTF-8'}) 05-22 01:18:55.069 7950 10932 I python : Android kivy bootstrap done. name is main 05-22 01:18:55.069 7950 10932 I python : AND: Ran string 05-22 01:18:55.069 7950 10932 I python : Run user program, change dir and execute entrypoint 05-22 01:18:55.497 7950 10932 I python : [INFO ] [Logger ] Record log in /data/user/0/org.test.baseconverter/files/app/.kivy/logs/kivy_23-05-22_1.txt 05-22 01:18:55.498 7950 10932 I python : [INFO ] [Kivy ] v2.0.0 05-22 01:18:55.499 7950 10932 I python : [INFO ] [Kivy ] Installed at "/data/user/0/org.test.baseconverter/files/app/_python_bundle/site-packages/kivy/init.pyc" 05-22 01:18:55.499 7950 10932 I python : [INFO ] [Python ] v3.9.9 (main, May 14 2023, 01:53:55) 05-22 01:18:55.499 7950 10932 I python : [Clang 14.0.6 (https://android.googlesource.com/toolchain/llvm-project 4c603efb 05-22 01:18:55.500 7950 10932 I python : [INFO ] [Python ] Interpreter at "" 05-22 01:18:55.508 7950 10932 I python : [INFO ] [KivyMD ] v0.104.1 05-22 01:18:55.525 7950 10932 I python : [INFO ] [Factory ] 186 symbols loaded 05-22 01:18:55.539 7950 10932 I python : Traceback (most recent call last): 05-22 01:18:55.540 7950 10932 I python : File "/mnt/c/Users/USER/Downloads/B2D/.buildozer/android/app/main.py", line 5, in 05-22 01:18:55.541 7950 10932 I python : File "/mnt/c/Users/USER/Downloads/B2D/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/baseConverter/armeabi-v7a/kivymd/uix/init.py", line 1, in 05-22 01:18:55.542 7950 10932 I python : ModuleNotFoundError: No module named 'kivy.properties' 05-22 01:18:55.543 7950 10932 I python : Python for android ended. 05-22 01:24:22.713 10977 12969 I python : Initializing Python for Android 05-22 01:24:22.713 10977 12969 I python : Setting additional env vars from p4a_env_vars.txt 05-22 01:24:22.713 10977 12969 I python : Changing directory to the one provided by ANDROID_ARGUMENT 05-22 01:24:22.713 10977 12969 I python : /data/user/0/org.test.blank/files/app 05-22 01:24:22.713 10977 12969 I python : Preparing to initialize python 05-22 01:24:22.714 10977 12969 I python : _python_bundle dir exists 05-22 01:24:22.714 10977 12969 I python : calculated paths to be... 05-22 01:24:22.714 10977 12969 I python : /data/user/0/org.test.blank/files/app/_python_bundle/stdlib.zip:/data/user/0/org.test.blank/files/app/_python_bundle/modules 05-22 01:24:22.729 10977 12969 I python : set wchar paths... 05-22 01:24:22.879 10977 12969 I python : Initialized python 05-22 01:24:22.879 10977 12969 I python : AND: Init threads 05-22 01:24:22.880 10977 12969 I python : testing python print redirection 05-22 01:24:22.883 10977 12969 I python : Android path ['.', '/data/user/0/org.test.blank/files/app/_python_bundle/stdlib.zip', '/data/user/0/org.test.blank/files/app/_python_bundle/modules', '/data/user/0/org.test.blank/files/app/_python_bundle/site-packages'] 05-22 01:24:22.884 10977 12969 I python : os.environ is environ({'PATH': '/product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin', 'ANDROID_BOOTLOGO': '1', 'ANDROID_ROOT': '/system', 'ANDROID_ASSETS': '/system/app', 'ANDROID_DATA': '/data', 'ANDROID_STORAGE': '/storage', 'ANDROID_ART_ROOT': '/apex/com.android.art', 'ANDROID_I18N_ROOT': '/apex/com.android.i18n', 'ANDROID_TZDATA_ROOT': '/apex/com.android.tzdata', 'EXTERNAL_STORAGE': '/sdcard', 'ASEC_MOUNTPOINT': '/mnt/asec', 'BOOTCLASSPATH': '/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/core-icu4j.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/smartbondingservice.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/knoxanalyticssdk.jar:/system/framework/knoxsdk.jar:/system/framework/drutils.jar:/system/framework/framework-atb-backward-compatibility.jar:/system/framework/SmpsManager.jar:/system/framework/uibc_java.jar:/system/framework/ICDVerification.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/mediatek-ims-base.jar:/apex/com.android.conscrypt/javalib/conscrypt.jar:/apex/com.android.media/javalib/updatable-media.jar:/apex/com.android.mediaprovider/javalib/framework-mediaprovider.jar:/apex/com.android.os.statsd/javalib/framework-statsd.jar:/apex/com.android.permission/javalib/framework-permission.jar:/apex/com.android.sdkext/javalib/framework-sdkextensions.jar:/apex/com.android.wifi/javalib/framework-wifi.jar:/apex/com.android.tethering/javalib/framework-tethering.jar', 'DEX2OATBOOTCLASSPATH': '/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/core-icu4j.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/smartbondingservice.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/knoxanalyticssdk.jar:/system/framework/knoxsdk.jar:/system/framework/drutils.jar:/system/framework/framework-atb-backward-compatibility.jar:/system/framework/SmpsManager.jar:/system/framework/uibc_java.jar:/system/framework/ICDVerification.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/mediatek-ims-base.jar', 'SYSTEMSERVERCLASSPATH': '/system/framework/com.android.location.provider.jar:/system/framework/services.jar:/system/framework/ethernet-service.jar:/system/framework/ssrm.jar:/system/framework/semwifi-service.jar:/apex/com.android.permission/javalib/service-permission.jar:/apex/com.android.ipsec/javalib/android.net.ipsec.ike.jar', 'DOWNLOAD_CACHE': '/data/cache', 'ANDROID_SOCKET_zygote': '17', 'ANDROID_SOCKET_usap_pool_primary': '21', 'ANDROID_ENTRYPOINT': 'main.pyc', 'ANDROID_ARGUMENT': '/data/user/0/org.test.blank/files/app', 'ANDROID_APP_PATH': '/data/user/0/org.test.blank/files/app', 'ANDROID_PRIVATE': '/data/user/0/org.test.blank/files', 'ANDROID_UNPACK': '/data/user/0/org.test.blank/files/app', 'PYTHONHOME': '/data/user/0/org.test.blank/files/app', 'PYTHONPATH': '/data/user/0/org.test.blank/files/app:/data/user/0/org.test.blank/files/app/lib', 'PYTHONOPTIMIZE': '2', 'P4A_BOOTSTRAP': 'SDL2', 'PYTHON_NAME': 'python', 'P4A_IS_WINDOWED': 'True', 'KIVY_ORIENTATION': 'Portrait', 'P4A_NUMERIC_VERSION': 'None', 'P4A_MINSDK': '21', 'LC_CTYPE': 'C.UTF-8'}) 05-22 01:24:22.884 10977 12969 I python : Android kivy bootstrap done. name is main 05-22 01:24:22.884 10977 12969 I python : AND: Ran string 05-22 01:24:22.884 10977 12969 I python : Run user program, change dir and execute entrypoint 05-22 01:24:23.242 10977 12969 I python : [WARNING] [Config ] Older configuration version detected (0 instead of 21) 05-22 01:24:23.243 10977 12969 I python : [WARNING] [Config ] Upgrading configuration in progress. 05-22 01:24:23.255 10977 12969 I python : [INFO ] [Logger ] Record log in /data/user/0/org.test.blank/files/app/.kivy/logs/kivy_23-05-22_0.txt 05-22 01:24:23.256 10977 12969 I python : [INFO ] [Kivy ] v2.0.0 05-22 01:24:23.257 10977 12969 I python : [INFO ] [Kivy ] Installed at "/data/user/0/org.test.blank/files/app/_python_bundle/site-packages/kivy/init.pyc" 05-22 01:24:23.258 10977 12969 I python : [INFO ] [Python ] v3.9.9 (main, May 20 2023, 03:19:41) 05-22 01:24:23.258 10977 12969 I python : [Clang 14.0.6 (https://android.googlesource.com/toolchain/llvm-project 4c603efb 05-22 01:24:23.258 10977 12969 I python : [INFO ] [Python ] Interpreter at "" 05-22 01:24:23.266 10977 12969 I python : [ERROR ] [Clock ] Unable to import kivy._clock. Have you perhaps forgotten to compile kivy? Kivy contains Cython code which needs to be compiled. A missing kivy._clock often indicates the Cython code has not been compiled. Please follow the installation instructions and make sure to compile Kivy 05-22 01:24:23.267 10977 12969 I python : Traceback (most recent call last): 05-22 01:24:23.268 10977 12969 I python : File "/mnt/c/Users/USER/pythonProject/testbuildozer/.buildozer/android/app/main.py", line 1, in 05-22 01:24:23.269 10977 12969 I python : File "/mnt/c/Users/USER/pythonProject/testbuildozer/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/blank/armeabi-v7a/kivy/app.py", line 411, in 05-22 01:24:23.270 10977 12969 I python : File "/mnt/c/Users/USER/pythonProject/testbuildozer/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/blank/armeabi-v7a/kivy/base.py", line 28, in 05-22 01:24:23.272 10977 12969 I python : File "/mnt/c/Users/USER/pythonProject/testbuildozer/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/blank/armeabi-v7a/kivy/clock.py", line 466, in 05-22 01:24:23.273 10977 12969 I python : ModuleNotFoundError: No module named 'kivy._clock' 05-22 01:24:23.273 10977 12969 I python : Python for android ended.

Please help me 🙏

RobertFlatt commented 1 year ago

https://github.com/Android-for-Python/Android-for-Python-Users#no-module-named-kivy_clock