-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
android apk is crashing after displaying splash screen on phone #2030
Comments
Can you post your code as well? That will make it easier to figure out what exactly is going wrong. Also if you call log cat with grep you can get more concise logs:
|
Thanks for the command for fine grained logs view of logcat. But this doesn't include complete log lines as many logs are not tagged with python which are of the app. As requested following is the python code file with name main.py:
|
that's already the case, it just wasn't rendering properly, i edited their post to fix it. interesting part of the log seems to be
crash in sdl initialisation? would be nice to know which function was called at this point, building p4a in debug mode could help to get the symbols. |
Anyway, my guess is that one of the libraries was incorrectly built because not all dependencies were present, and cleaning up ( |
I did not actually understand your point. I have already used if name == 'main': in the code of app. I have gone through the link but found no clue of what you are referencing. |
HI, I am unable to figure out the edited patr in the post which you have mentioned in the comment to fix the issue. Kindly highlight the edited part. |
Hi, I have removed .buildozer dir and then try re-building the apk but no it is still crashing after displaying the default splash screen of the app. Kindly help me out. |
This is the crash, it's not in python, it's in C, and it doesn't give a lot of information, it would require investigation with a debugger with a debug build to understand, which is not really to step you through. So i'm curious about your list of requirements
Did you add all that because of specific problems? Did you have the same or different issues before that? because a much shorter list should be enough.
I don't know if you think it's polite to say that, but that's not how i read it, we are already kindly helping you out, no need to insist on that. |
Yes! I understand that crash logs are of C not python might be because of the cythonizing while building. There is nothing special for using huge requirements. I was just trying with different options. I also build with requirements = python3, kivy but the issue is same with that too. I am stuck at this since a month almost and trying and trying to build successful apk |
I identified that I have used double quotes ("") and you have mentioned single quote to enclose main. I tried with this too but the problem remain. Guide further to resolve. |
I think he was mentioning the underscore |
A pygame user has the exact same problem, with the pygame fork of p4a, but it happens only on a mac, and can't be reproduced on Linux. |
Yes! I am still trying with double quotes itself and more than 100 times with different versions as per follows: I am able to build app successfully and installed on Samsung Galaxy A5 (2016). It is crashing on run. Building environment: buildozer.spec: requirements python3,kivy libs in APK: crash logcat error: |
same problem, but after many taps on screen while app is loading, application starts successfully. |
Check my app problem python file import pymysql screen_helper = """ variablesScreenManager: for adding picmain screen<Main_Screen>:
login screen<Login_Screen>:
signup screen<Signup_Screen>:
navigation drawer: navigation screen<Navigation_Screen>:
:
:
:
:
:
""" main screen classclass Main_Screen(Screen): navigation screen classclass Navigation_Screen(Screen): navigation drawer classclass ContentNavigationDrawer(BoxLayout):
login screen classclass Login_Screen(Screen):
signup screen classclass Signup_Screen(Screen):
pro screen classclass pro(Screen):
ser screen classclass ser(Screen):
acc screen classclass acc(Screen):
dis screen classclass dis(Screen): pay screen classclass pay(Screen):
Create the screen managersm = ScreenManager() count = 0 main classclass DemoApp(MDApp):
DemoApp().run() buildozer.spec [app] (str) Title of your applicationtitle = FDM (str) Package namepackage.name = com.icd.fdm (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,atlas,txt (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 = ico.png (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 = 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,pymysql,kivymd,datetime,kivmob,datetime (str) Custom source folders for requirementsSets custom source for any requirements with recipesrequirements.source.kivy = ../../kivy(list) Garden requirements#garden_requirements = (str) Presplash of the applicationpresplash.filename = ico.png (str) Icon of the applicationicon.filename = ico.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,WRITE_EXTERNAL_STORAGE OSX Specificauthor = ICDeveloper© Copyright Info change the major version of python used by the apposx.python_version = 3 Kivy version to useosx.kivy_version = 1.9.1 Android specific(bool) Indicate if the application should be fullscreen or notfullscreen = 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) Permissionsandroid.permissions = INTERNET, ACCESS_NETWORK_STATE (int) Target Android API, should be as high as possible.#android.api = 27 (int) Minimum API your APK 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 = android.gradle_dependencies = 'com.google.firebase:firebase-ads:10.2.0' For test ads, use application ID ca-app-pub-3940256099942544~3347511713android.meta_data = com.google.android.gms.ads.APPLICATION_ID={pub-2946877806572624} (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 (currently works only with sdl2_gradlebootstrap)#android.add_aars = (list) Gradle dependencies to add (currently works only with sdl2_gradlebootstrap)#android.gradle_dependencies = (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_gradle_repositories = (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 = (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 = 1Python 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 = 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 = 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 (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 |
What I noticed was that kivy projects were building well, but kivymd projects were crashing after the splashscreen. This worked for me
|
Closing as a support issue that's got out of control. |
Versions
Description
I am building basic python android app using buildozer and p4a and able to successfully build the apk. The build apk has been installed successfully over the usb connected MI Redmi phone and it runs. After splash screen the app crashes and found no clu of cause of crash in logcat logs.
buildozer.spec
Command:
Spec file:
Logs
The text was updated successfully, but these errors were encountered: