-
Notifications
You must be signed in to change notification settings - Fork 38
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
can kivmob work with api 29? #99
Comments
Please show us our buildozer.spec |
[app] (str) Title of your applicationtitle = R6Random (str) Package namepackage.name = r6app (str) Package domain (needed for android/ios packaging)package.domain = org.test (str) Source code where the main.py livesource.dir = . (list) Source files to include (let empty to include all the files)source.include_exts = py,png,jpg,kv,jpeg (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#source.exclude_patterns = license,images//.jpg (str) Application versioning (method 1)version = 0.1 (str) Application versioning (method 2)version.regex = version = '"['"]version.filename = %(source.dir)s/main.py(list) Application requirementscomma separated e.g. requirements = sqlite3,kivyrequirements = hostpython3, libffi, python3, setuptools, pyjnius, android, kivy, kivymd, kivmob, jnius (str) Custom source folders for requirementsSets custom source for any requirements with recipesrequirements.source.kivy = ../../kivy(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, sensorLandscape, portrait or all)orientation = portrait (list) List of service to declare#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY OSX Specificauthor = © Copyright Infochange the major version of python used by the apposx.python_version = 3 Kivy version to useosx.kivy_version = 2.0.0 Android specific(bool) Indicate if the application should be fullscreen or notfullscreen = 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" (list) Permissionsandroid.permissions = INTERNET, ACCESS_NETWORK_STATE (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 = 29 (int) Minimum API your APK will support.android.minapi = 21 (int) Android SDK version to use#android.sdk = 20 (str) Android NDK version to useandroid.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 sdkThis can be useful to avoid excess Internet downloads or save timewhen an update is due and you just want to test/build your packageandroid.skip_update = False(bool) If True, then automatically accept SDK licenseagreements. This is intended for automation only. If set to False,the default, you will be shown the license when first runningbuildozer.android.accept_sdk_license = False(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 appandroid.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 accesstheir classes. Don't add jars that you do not need, since extra jars can slowdown 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 adirectory containing the files)#android.add_src = (list) Android AAR archives to add#android.add_aars = (list) Gradle dependencies to addandroid.gradle_dependencies ='com.google.firebase:firebase-ads:10.2.0' (list) add java compile optionsthis can for example be necessary when importing certain java libraries using the 'android.gradle_dependencies' optionsee https://developer.android.com/studio/write/java8-support for further informationandroid.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 quotese.g. android.gradle_repositories = "maven { url 'https://kotlin.bintray.com/ktor' }"#android.add_gradle_repositories = (list) packaging options to addsee https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.htmlcan be necessary to solve conflicts in gradle_dependenciesplease enclose in double quotese.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 APPIf 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 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 (bool) Indicate whether the screen should stay onDon'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-2507976896790061~4110057248" (list) Android library project to add (will be added in theproject.properties automatically.)#android.library_references = (list) Android shared libraries which will be added to AndroidManifest.xml using 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_64android.arch = 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 doingandroid.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 = [:]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 masterp4a.branch = master (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 buildsp4a.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 notSetting this to false will pass --ignore-setup-py, true will pass --use-setup-pyNOTE: this is general setuptools integration, having pyproject.toml is enough, no need to generatesetup.py if you're using Poetry, but you need to add "toml" to source.include_exts.#p4a.setup_py = false 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 Another platform dependency: ios-deployUncomment to use a custom checkout#ios.ios_deploy_dir = ../ios_deploy Or specify URL and branchios.ios_deploy_url = https://github.com/phonegap/ios-deploy (bool) Whether or not to sign the codeios.codesign.allowed = false (str) Name of the certificate to use for signing the debug versionGet a list of available identities: buildozer ios list_identities#ios.codesign.debug = "iPhone Developer: ()" (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 filebuild_dir = ./.buildozer(str) Path to build output (i.e. .apk, .ipa) storagebin_dir = ./bin-----------------------------------------------------------------------------List as sectionsYou 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] This can be translated into:#[app:source.exclude_patterns] -----------------------------------------------------------------------------ProfilesYou can extend section / key with a profileFor example, you want to deploy a demo version of your application withoutHD content. You could first change the title to add "(demo)" in the nameand extend the excluded directories to remove the HD content.#[app@demo] #[app:source.exclude_patterns@demo] Then, invoke the command line with the "demo" profile:#buildozer --profile demo android debug |
this is my buildozer.spec |
I researched a little bit and found that Android NDK 19b supports android API upto 28. The latest Android NDK is 22d but I recommend you to use android ndk 20b as it is running perfectly fine with android api 29. |
Please feedback us on this issue if changing android.ndk to 20b in your buildozer.spec actually fixes the problem so that we can document it further for future use cases. |
I tried to do this and then I compiled the application, ran it on the phone, and it crashed (you can see a screenshot from logcat at the very top, it says referenceerror weakly-referenced object no longer exists, I read on the Internet and found out that this error could be associated with clicking on the button with the wrong id, but it crashed for me right away, that is, I don’t know how to fix it at all) |
Then the problem lies in your code somewhere and it is not relevant with kivmob. |
You need to do some debugging |
weakref is an issue due to not using kivy==2.0.0 (or greater) on Android. |
it is working on api 27, but when i changed my app into api 29 it doesn't work.
it's a screenshot from the logcat
The text was updated successfully, but these errors were encountered: