-
Notifications
You must be signed in to change notification settings - Fork 523
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
Application crashes on start #546
Comments
You can debug the application using logcat. With buildozer, you can get this with If you can't resolve the problem with that information, please post the full details including this log on the kivy-users mailing list. |
I have the log from logcat (linked in the original post, as it is ~14000 lines long), but I can't make sense of it. The line that seems to cause the crash is I'll post in the kivy-users mailing list. |
Oh, sorry, I missed that. The important part is as below. It looks like dlib has compiled components and will need a recipe to work with p4a. Although the error is about 64 vs 32 bit, it's likely that it's only 64 bit because it's built for the wrong (desktop) architecture.
|
Thanks for the reply! I tried following the p4a documentation and buildozer documentation about recipes.
I then created the following directory: Desktop/python-for-android/pythonforandroid/recipes/dlib
I'm not sure what else I'm supposed to include in the recipe, as I am struggling to understand the documentation. I have looked at other recipes in the repo and some of them are that simple. When I build my project, I get the following lines which seem to say my recipe is being used:
However, when I deploy the application to the tablet, I get the same error message:
Here is a link to the full log: https://www.dropbox.com/s/ydsp9ke93z0zd19/log_tablet_4.txt?dl=0 |
Hello, Have you tried to build without all the libraries you put in your spec file, and add them one by one ? I think opencv and imutils make the app crash when launching on the phone. Also shouldn't it be opencv-python as we do pip install opencv-python ? |
I am new to Python Kivy and I compiled the apk without any errors, but when I run it, it crashes after the loading screen. buildozer.spec:# This .spec config file tells Buildozer an app's requirements for being built. It largely follows the syntax of an .ini file.See the end of the file for more details and warnings about common mistakes.[app] (str) Title of your applicationtitle = DownTube (str) Package namepackage.name = downtube.app (str) Package domain (needed for android/ios packaging)package.domain = org.downtube (str) Source code where the main.py livesource.dir = . (list) Source files to include (leave 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 (leave empty to not exclude anything)#source.exclude_exts = spec (list) List of directory to exclude (leave empty to not exclude anything)#source.exclude_dirs = tests, bin, venv (list) List of exclusions using pattern matchingDo not prefix with './'#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 = python3,kivy==2.1.0,pytube==15.0.0,moviepy==1.0.3 (str) Custom source folders for requirementsSets custom source for any requirements with recipesrequirements.source.kivy = ../../kivy(str) Presplash of the applicationpresplash.filename = loading.png presplash.scale = fill (str) Icon of the applicationicon.filename = logo.png (list) Supported orientationsValid options are: landscape, portrait, portrait-reverse or landscape-reverseorientation = portrait (list) List of services to declareThis is currently only relevant to Android services.Each service consists of a name (a valid Java class name, with the first letter capitalized)followed by a colon, followed by the name of the Python script (.py file) that should belaunched. This is optionally followed by ":foreground" for foreground services or":foreground:sticky" for sticky foreground services. The default is a background service.Bound services are not supported.#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY OSX Specificauthor = © Copyright InfoKivy version to useosx.kivy_version = 2.1.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" (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(See https://python-for-android.readthedocs.io/en/latest/buildoptions.html for all the supported syntaxes and properties)android.permissions = INTERNET, WRITE_EXTERNAL_STORAGE (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 = 31 (int) Minimum API your APK / AAB will support.#android.minapi = 21 (int) Android SDK version to useandroid.sdk = 29 (str) Android NDK version to use#android.ndk = 23b (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 (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.kivy.android.PythonActivity (str) Full name including package path of the Java class that implements Android Activityuse 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 element of AndroidManifest.xmluse 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 tag of AndroidManifest.xmluse 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 Serviceuse that parameter to set custom Java class which extends PythonService#android.service_class_name = org.kivy.android.PythonService (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 = (bool) If True, your application will be listed as a home app (launcher app)android.home_app = False(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) 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_path2) android.add_assets = source_asset_path:destination_asset_relative_path#android.add_assets = (list) Put these files or directories in the apk res directory.The option may be used in three ways, the value may contain one or zero ':'Some examples:1) A file to add to resources, legal resource names contain ['a-z','0-9','_']android.add_resources = my_icons/all-inclusive.png:drawable/all_inclusive.png2) A directory, here 'legal_icons' must contain resources of one kindandroid.add_resources = legal_icons:drawable3) A directory, here 'legal_resources' must contain one or more directories,each of a resource kind: drawable, xml, etc...android.add_resources = legal_resources#android.add_resources = (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 = True (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://repo.spring.io/release' }"#android.add_gradle_repositories = (list) packaging options to addsee https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/PackagingOptionscan 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 = (list) Copy these files to src/main/res/xml/ (used for example with intent-filters)#android.res_xml = PATH_TO_FILE, (str) launchMode to set for the main activity#android.manifest.launch_mode = standard (str) screenOrientation to set for the main activity.Valid values can be found at https://developer.android.com/guide/topics/manifest/activity-element#android.manifest.orientation = fullSensor (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 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 = (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) 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_64In past, was
|
I can't run it with logcat because I'm in a virtual machine, I send it directly to the phone via WhatsApp and try it. |
The application I am writing compiles correctly, but when I push it to a tablet and run it, it crashes as soon as it gets past the 'Loading' screen.
Here are my system specs:
The device I am trying to deploy to is an ASUS ZenPad 3s 10. I have turned on the developer options, but it is not rooted as it seems it is not possible at the moment. The tablet is running Android 7.0.
Here is my buildozer spec file:
And here is a link to the logcat log file: https://www.dropbox.com/s/wrciz1od52rb1xh/log_tablet.txt?dl=0
The text was updated successfully, but these errors were encountered: