kivy / python-for-android

Turn your Python application into an Android APK
https://python-for-android.readthedocs.io
MIT License
8.39k stars 1.87k forks source link

android apk is crashing after displaying splash screen on phone #2030

Closed iruriksl closed 1 year ago

iruriksl commented 5 years ago

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:

buildozer -v android debug deploy run logcat

Spec file:

[app]

# (str) Title of your application
title = My Application

# (str) Package name
package.name = myapp

# (str) Package domain (needed for android/ios packaging)
package.domain = org.test

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

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

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

# (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 = kivy,python3
requirements = hostpython3, libffi, openssl, sdl2_image, sdl2_mixer, sdl2_ttf, sqlite3, python3, sdl2, setuptools, six, pyjnius, android, kivy

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

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

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

# (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 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.renpy.android.PythonActivity

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

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

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

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

# (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
android.arch = armeabi-v7a

#
# Python for android (p4a) specific
#

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

Logs

Logcat logs are attached since the post becomes too long and the comment characters overflows.
[run_logcat_appcrash3_issue_aconda.txt](https://github.com/kivy/python-for-android/files/3897349/run_logcat_appcrash3_issue_aconda.txt)
Narcolapser commented 5 years ago

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:

adb logcat | grep "python"
iruriksl commented 5 years ago

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:

adb logcat | grep "python"

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

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput

class MainApp(App):
    def build(self):
        self.operators = ["/", "*", "+", "-"]
        self.last_was_operator = None
        self.last_button = None
        main_layout = BoxLayout(orientation="vertical")
        self.solution = TextInput(
            multiline=False, readonly=True, halign="right", font_size=55
        )
        main_layout.add_widget(self.solution)
        buttons = [
            ["7", "8", "9", "/"],
            ["4", "5", "6", "*"],
            ["1", "2", "3", "-"],
            [".", "0", "C", "+"],
        ]
        for row in buttons:
            h_layout = BoxLayout()
            for label in row:
                button = Button(
                    text=label,
                    pos_hint={"center_x": 0.5, "center_y": 0.5},
                )
                button.bind(on_press=self.on_button_press)
                h_layout.add_widget(button)
            main_layout.add_widget(h_layout)

        equals_button = Button(
            text="=", pos_hint={"center_x": 0.5, "center_y": 0.5}
        )
        equals_button.bind(on_press=self.on_solution)
        main_layout.add_widget(equals_button)

        return main_layout

    def on_button_press(self, instance):
        current = self.solution.text
        button_text = instance.text

        if button_text == "C":
            # Clear the solution widget
            self.solution.text = ""
        else:
            if current and (
                self.last_was_operator and button_text in self.operators):
                # Don't add two operators right after each other
                return
            elif current == "" and button_text in self.operators:
                # First character cannot be an operator
                return
            else:
                new_text = current + button_text
                self.solution.text = new_text
        self.last_button = button_text
        self.last_was_operator = self.last_button in self.operators

    def on_solution(self, instance):
        text = self.solution.text
        if text:
            solution = str(eval(self.solution.text))
            self.solution.text = solution

if __name__ == "__main__":
    app = MainApp()
    app.run()
Narcolapser commented 4 years ago
if name == "main":

There is your problem. name is undefined you want:

if __name__ == '__main__':

Try that and see if it resolves the issue.

Here is some reading about __name__ and __main__.

tshirtman commented 4 years ago

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

11-24 20:56:41.959 22574 22762 I python  : Preparing to initialize python
11-24 20:56:41.959 22574 22762 I python  : _python_bundle dir exists
11-24 20:56:41.959 22574 22762 I python  : calculated paths to be...
11-24 20:56:41.959 22574 22762 I python  : /data/user/0/org.test.myapp/files/app/_python_bundle/stdlib.zip:/data/user/0/org.test.myapp/files/app/_python_bundle/modules
11-24 20:56:41.963  1598  1598 W Looper  : Drained
11-24 20:56:41.965  2309  2504 I ThemeRuntimeManager: add pending job org.test.myapp.png
11-24 20:56:41.966 22574 22762 I python  : set wchar paths...
11-24 20:56:41.970 22629 22676 I ##XLogger##: com.miui.cloudservice.push.MiPushMessageReceiver::onCommandResult@MiPushMessageReceiver.java:55, thread:2025--onCommandResult is called, command: set-alias, resultCode: 0, reason: null, category: null
11-24 20:56:41.971  2309 22767 I ThemeRuntimeManager: saving icon for org.test.myapp.png
11-24 20:56:41.971   554  3425 D QSEECOMAPI: Loaded image: APP id = 2424836
11-24 20:56:41.972 22629 22676 I ##XLogger##: com.miui.cloudservice.push.MiPushMessageReceiver::onCommandResult@MiPushMessageReceiver.java:113, thread:2025--set_alias_success, ******************************************506c8d63
11-24 20:56:41.975  1598  1763 D CompatibilityInfo: mCompatibilityFlags - 0
11-24 20:56:41.975  1598  1763 D CompatibilityInfo: applicationDensity - 320
11-24 20:56:41.975  1598  1763 D CompatibilityInfo: applicationScale - 1.0
11-24 20:56:41.981   554  3425 D MTService: load app cardapp from /vendor/firmware_mnt/image OK
11-24 20:56:41.989 22721 22769 I MiPicks-LocalAppManager: load local apps from system : begin
11-24 20:56:42.003   463   464 E rpmb_emmc: ----------------------------rpmb_emmc_read-----------------------------
11-24 20:56:42.009   554  3425 D MTService: Response OK, size: 64
11-24 20:56:42.010   554  3425 D QSEECOMAPI: QSEECom_dealloc_memory 
11-24 20:56:42.010   554  3425 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 2424836
11-24 20:56:42.010   554  3425 D QSEECOMAPI: QSEECom_dealloc_memory 
11-24 20:56:42.010   554  3425 E QSEECOMAPI: Error::Cannot de-alloc memory. priv handle is NULL!!.
11-24 20:56:42.013  2994  4117 I android_os_HwBinder: HwBinder: Starting thread pool for default::vendor.xiaomi.hardware.mtdservice@1.0::IMTService
11-24 20:56:42.014   554  3425 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
11-24 20:56:42.014   554  3425 D QSEECOMAPI: App is not loaded in QSEE
11-24 20:56:42.014   554  3425 D QSEECOMAPI: app_arch = 1, total_files = 8
11-24 20:56:42.028   554  3425 D QSEECOMAPI: Loaded image: APP id = 2490372
11-24 20:56:42.029 22721 22721 I MiPicks-LoginManager: account has login
11-24 20:56:42.031   554  3425 D MTService: load app cardapp from /vendor/firmware_mnt/image OK
11-24 20:56:42.037   463   464 E rpmb_emmc: ----------------------------rpmb_emmc_read-----------------------------
11-24 20:56:42.051   554  3425 D MTService: Response OK, size: 64
11-24 20:56:42.051   554  3425 D QSEECOMAPI: QSEECom_dealloc_memory 
11-24 20:56:42.051   554  3425 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 2490372
11-24 20:56:42.052   554  3425 D QSEECOMAPI: QSEECom_dealloc_memory 
11-24 20:56:42.052   554  3425 E QSEECOMAPI: Error::Cannot de-alloc memory. priv handle is NULL!!.
11-24 20:56:42.070 22721 22769 I MiPicks-LocalAppManager: load local apps from system : finish
11-24 20:56:42.106 22574 22762 F libc    : Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 22762 (SDLThread), pid 22574 (org.test.myapp)
11-24 20:56:42.122  2994  4117 I android_os_HwBinder: HwBinder: Starting thread pool for default::vendor.xiaomi.hardware.mtdservice@1.0::IMTService
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQ] wait result 1
11-24 20:56:42.123   554   554 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQueueClientInfo] GTP-FDAL: read
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQueueClientInfo] just read 4 bytes
11-24 20:56:42.123   554   554 D QSEECOMAPI: App is not loaded in QSEE
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQ] wait result 1
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQueueClientInfo] GTP-FDAL: read
11-24 20:56:42.123   554   554 D QSEECOMAPI: app_arch = 1, total_files = 8
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQueueClientInfo] just read 76 bytes
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQueueClientInfo] card length 76 + 4 bytes, current size 80 bytes
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQ] lookupAndDeliver delivering message to client GTP-FDAL 
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQ] wait result 1
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQueueClientInfo] GTP-FDAL: write
11-24 20:56:42.123   941   965 D QCALOG  : [MessageQueueClientInfo] write to [GTP-FDAL], 80 bytes finished, 0 bytes left
11-24 20:56:42.137   554   554 D QSEECOMAPI: Loaded image: APP id = 2555908
11-24 20:56:42.138   554   554 D MTService: load app cardapp from /vendor/firmware_mnt/image OK
11-24 20:56:42.160   463   464 E rpmb_emmc: ----------------------------rpmb_emmc_read-----------------------------
11-24 20:56:42.166   554   554 D MTService: Response OK, size: 64
11-24 20:56:42.166   554   554 D QSEECOMAPI: QSEECom_dealloc_memory 
11-24 20:56:42.166   554   554 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 2555908
11-24 20:56:42.166   554   554 D QSEECOMAPI: QSEECom_dealloc_memory 
11-24 20:56:42.166   554   554 E QSEECOMAPI: Error::Cannot de-alloc memory. priv handle is NULL!!.
11-24 20:56:42.180  1914  2184 D NetworkController.MobileSignalController(1): getDataNetTypeFromServiceState slotId=0  isUsingCarrierAggregation=false
11-24 20:56:42.180  1914  2184 D NetworkTypeUtils: getDataNetTypeFromServiceState:srcDataNetType = 13, destDataNetType 13
11-24 20:56:42.181  1914  2184 D MobileSignalController: updateDataType mSelectedDataTypeIcon[0]=2131232216, mSelectedDataActivityIndex=6
11-24 20:56:42.181  1914  2184 D TelephonyIcons: getSignalStrengthIcon: slot=0, inetCondition=1, level=4, roaming=false, signalstrength=SignalStrength: 99 0 -120 -160 -120 -160 -1 18 -105 -12 2 2147483647 0 2147483647 99 255 2147483647 gsm|lte use_rsrp_and_rssnr_for_lte_level  [-128, -115, -110, -105, -97] [-115, -105, -95, -85]
11-24 20:56:42.181  1914  2184 D TelephonyIcons: getDataActivity, slot=0, activity=1
11-24 20:56:42.183  1914  2184 D TelephonyIcons: null signal icon name: drawable/stat_sys_signal_null
11-24 20:56:42.183  1914  2184 D TelephonyIcons: getDataTypeIcon sub=0
11-24 20:56:42.218  1914  1914 I StatusBar: onNotificationPosted key:0|com.xiaomi.mipicks|208050263|null|10071 isUpdate:false
11-24 20:56:42.219  1914  1914 I StatusBar: handleNotification key:0|com.xiaomi.mipicks|208050263|null|10071 isUpdate:false
11-24 20:56:42.237  1914  1914 D StatusBar: filter Notification key=0|com.xiaomi.mipicks|208050263|null|10071
11-24 20:56:42.258 22779 22779 I crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone
11-24 20:56:42.261   966   966 I /system/bin/tombstoned: received crash request for pid 22762
11-24 20:56:42.262 22779 22779 I crash_dump32: performing dump of process 22574 (target tid = 22762)
11-24 20:56:42.265 22721 22783 I MiPicks-AutoDownloadScheduler: [AutoDownload] scheduleAutoDownloadOnAppStart
11-24 20:56:42.277 22779 22779 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
11-24 20:56:42.277 22779 22779 F DEBUG   : Build fingerprint: 'xiaomi/onc/onc:9/PKQ1.181021.001/V11.0.3.0.PFFINXM:user/release-keys'
11-24 20:56:42.277 22779 22779 F DEBUG   : Revision: '0'
11-24 20:56:42.277 22779 22779 F DEBUG   : ABI: 'arm'
11-24 20:56:42.278 22779 22779 F DEBUG   : pid: 22574, tid: 22762, name: SDLThread  >>> org.test.myapp <<<
11-24 20:56:42.278 22779 22779 F DEBUG   : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
11-24 20:56:42.278 22779 22779 F DEBUG   :     r0  00000000  r1  000058ea  r2  00000006  r3  00000008
11-24 20:56:42.278 22779 22779 F DEBUG   :     r4  0000582e  r5  000058ea  r6  cc61786c  r7  0000010c
11-24 20:56:42.278 22779 22779 F DEBUG   :     r8  cbd78a50  r9  00000002  r10 e4bcd100  r11 cc617898
11-24 20:56:42.278 22779 22779 F DEBUG   :     ip  eab5e3d8  sp  cc617858  lr  eaacd621  pc  eaac4e5e
11-24 20:56:42.279 22779 22779 F DEBUG   : 
11-24 20:56:42.279 22779 22779 F DEBUG   : backtrace:
11-24 20:56:42.279 22779 22779 F DEBUG   :     #00 pc 0001ce5e  /system/lib/libc.so (abort+58)
11-24 20:56:42.279 22779 22779 F DEBUG   :     #01 pc 001ba620  /data/app/org.test.myapp-nd6pZVJ7QMuG5eEj_BldjA==/lib/arm/libpython3.7m.so (offset 0x83000)

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.

tshirtman commented 4 years ago

Anyway, my guess is that one of the libraries was incorrectly built because not all dependencies were present, and cleaning up (rm -rf .buildozer in the project dir) then building again buildozer android debug) would solve the problem.

iruriksl commented 4 years ago

if name == 'main':

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. Kindly elaborate the needful to be done.

iruriksl commented 4 years ago

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

11-24 20:56:41.959 22574 22762 I python  : Preparing to initialize python
11-24 20:56:41.959 22574 22762 I python  : _python_bundle dir exists
11-24 20:56:41.959 22574 22762 I python  : calculated paths to be...
11-24 20:56:41.959 22574 22762 I python  : /data/user/0/org.test.myapp/files/app/_python_bundle/stdlib.zip:/data/user/0/org.test.myapp/files/app/_python_bundle/modules
11-24 20:56:41.963  1598  1598 W Looper  : Drained
11-24 20:56:41.965  2309  2504 I ThemeRuntimeManager: add pending job org.test.myapp.png
11-24 20:56:41.966 22574 22762 I python  : set wchar paths...
11-24 20:56:41.970 22629 22676 I ##XLogger##: com.miui.cloudservice.push.MiPushMessageReceiver::onCommandResult@MiPushMessageReceiver.java:55, thread:2025--onCommandResult is called, command: set-alias, resultCode: 0, reason: null, category: null
11-24 20:56:41.971  2309 22767 I ThemeRuntimeManager: saving icon for org.test.myapp.png
11-24 20:56:41.971   554  3425 D QSEECOMAPI: Loaded image: APP id = 2424836
11-24 20:56:41.972 22629 22676 I ##XLogger##: com.miui.cloudservice.push.MiPushMessageReceiver::onCommandResult@MiPushMessageReceiver.java:113, thread:2025--set_alias_success, ******************************************506c8d63
11-24 20:56:41.975  1598  1763 D CompatibilityInfo: mCompatibilityFlags - 0
11-24 20:56:41.975  1598  1763 D CompatibilityInfo: applicationDensity - 320
11-24 20:56:41.975  1598  1763 D CompatibilityInfo: applicationScale - 1.0
11-24 20:56:41.981   554  3425 D MTService: load app cardapp from /vendor/firmware_mnt/image OK
11-24 20:56:41.989 22721 22769 I MiPicks-LocalAppManager: load local apps from system : begin
11-24 20:56:42.003   463   464 E rpmb_emmc: ----------------------------rpmb_emmc_read-----------------------------
11-24 20:56:42.009   554  3425 D MTService: Response OK, size: 64
11-24 20:56:42.010   554  3425 D QSEECOMAPI: QSEECom_dealloc_memory 
11-24 20:56:42.010   554  3425 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 2424836
11-24 20:56:42.010   554  3425 D QSEECOMAPI: QSEECom_dealloc_memory 
11-24 20:56:42.010   554  3425 E QSEECOMAPI: Error::Cannot de-alloc memory. priv handle is NULL!!.
11-24 20:56:42.013  2994  4117 I android_os_HwBinder: HwBinder: Starting thread pool for default::vendor.xiaomi.hardware.mtdservice@1.0::IMTService
11-24 20:56:42.014   554  3425 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
11-24 20:56:42.014   554  3425 D QSEECOMAPI: App is not loaded in QSEE
11-24 20:56:42.014   554  3425 D QSEECOMAPI: app_arch = 1, total_files = 8
11-24 20:56:42.028   554  3425 D QSEECOMAPI: Loaded image: APP id = 2490372
11-24 20:56:42.029 22721 22721 I MiPicks-LoginManager: account has login
11-24 20:56:42.031   554  3425 D MTService: load app cardapp from /vendor/firmware_mnt/image OK
11-24 20:56:42.037   463   464 E rpmb_emmc: ----------------------------rpmb_emmc_read-----------------------------
11-24 20:56:42.051   554  3425 D MTService: Response OK, size: 64
11-24 20:56:42.051   554  3425 D QSEECOMAPI: QSEECom_dealloc_memory 
11-24 20:56:42.051   554  3425 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 2490372
11-24 20:56:42.052   554  3425 D QSEECOMAPI: QSEECom_dealloc_memory 
11-24 20:56:42.052   554  3425 E QSEECOMAPI: Error::Cannot de-alloc memory. priv handle is NULL!!.
11-24 20:56:42.070 22721 22769 I MiPicks-LocalAppManager: load local apps from system : finish
11-24 20:56:42.106 22574 22762 F libc    : Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 22762 (SDLThread), pid 22574 (org.test.myapp)
11-24 20:56:42.122  2994  4117 I android_os_HwBinder: HwBinder: Starting thread pool for default::vendor.xiaomi.hardware.mtdservice@1.0::IMTService
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQ] wait result 1
11-24 20:56:42.123   554   554 D QSEECOMAPI: QSEECom_get_handle sb_length = 0x2000
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQueueClientInfo] GTP-FDAL: read
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQueueClientInfo] just read 4 bytes
11-24 20:56:42.123   554   554 D QSEECOMAPI: App is not loaded in QSEE
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQ] wait result 1
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQueueClientInfo] GTP-FDAL: read
11-24 20:56:42.123   554   554 D QSEECOMAPI: app_arch = 1, total_files = 8
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQueueClientInfo] just read 76 bytes
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQueueClientInfo] card length 76 + 4 bytes, current size 80 bytes
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQ] lookupAndDeliver delivering message to client GTP-FDAL 
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQ] wait result 1
11-24 20:56:42.123   941   965 V QCALOG  : [MessageQueueClientInfo] GTP-FDAL: write
11-24 20:56:42.123   941   965 D QCALOG  : [MessageQueueClientInfo] write to [GTP-FDAL], 80 bytes finished, 0 bytes left
11-24 20:56:42.137   554   554 D QSEECOMAPI: Loaded image: APP id = 2555908
11-24 20:56:42.138   554   554 D MTService: load app cardapp from /vendor/firmware_mnt/image OK
11-24 20:56:42.160   463   464 E rpmb_emmc: ----------------------------rpmb_emmc_read-----------------------------
11-24 20:56:42.166   554   554 D MTService: Response OK, size: 64
11-24 20:56:42.166   554   554 D QSEECOMAPI: QSEECom_dealloc_memory 
11-24 20:56:42.166   554   554 D QSEECOMAPI: QSEECom_shutdown_app, app_id = 2555908
11-24 20:56:42.166   554   554 D QSEECOMAPI: QSEECom_dealloc_memory 
11-24 20:56:42.166   554   554 E QSEECOMAPI: Error::Cannot de-alloc memory. priv handle is NULL!!.
11-24 20:56:42.180  1914  2184 D NetworkController.MobileSignalController(1): getDataNetTypeFromServiceState slotId=0  isUsingCarrierAggregation=false
11-24 20:56:42.180  1914  2184 D NetworkTypeUtils: getDataNetTypeFromServiceState:srcDataNetType = 13, destDataNetType 13
11-24 20:56:42.181  1914  2184 D MobileSignalController: updateDataType mSelectedDataTypeIcon[0]=2131232216, mSelectedDataActivityIndex=6
11-24 20:56:42.181  1914  2184 D TelephonyIcons: getSignalStrengthIcon: slot=0, inetCondition=1, level=4, roaming=false, signalstrength=SignalStrength: 99 0 -120 -160 -120 -160 -1 18 -105 -12 2 2147483647 0 2147483647 99 255 2147483647 gsm|lte use_rsrp_and_rssnr_for_lte_level  [-128, -115, -110, -105, -97] [-115, -105, -95, -85]
11-24 20:56:42.181  1914  2184 D TelephonyIcons: getDataActivity, slot=0, activity=1
11-24 20:56:42.183  1914  2184 D TelephonyIcons: null signal icon name: drawable/stat_sys_signal_null
11-24 20:56:42.183  1914  2184 D TelephonyIcons: getDataTypeIcon sub=0
11-24 20:56:42.218  1914  1914 I StatusBar: onNotificationPosted key:0|com.xiaomi.mipicks|208050263|null|10071 isUpdate:false
11-24 20:56:42.219  1914  1914 I StatusBar: handleNotification key:0|com.xiaomi.mipicks|208050263|null|10071 isUpdate:false
11-24 20:56:42.237  1914  1914 D StatusBar: filter Notification key=0|com.xiaomi.mipicks|208050263|null|10071
11-24 20:56:42.258 22779 22779 I crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone
11-24 20:56:42.261   966   966 I /system/bin/tombstoned: received crash request for pid 22762
11-24 20:56:42.262 22779 22779 I crash_dump32: performing dump of process 22574 (target tid = 22762)
11-24 20:56:42.265 22721 22783 I MiPicks-AutoDownloadScheduler: [AutoDownload] scheduleAutoDownloadOnAppStart
11-24 20:56:42.277 22779 22779 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
11-24 20:56:42.277 22779 22779 F DEBUG   : Build fingerprint: 'xiaomi/onc/onc:9/PKQ1.181021.001/V11.0.3.0.PFFINXM:user/release-keys'
11-24 20:56:42.277 22779 22779 F DEBUG   : Revision: '0'
11-24 20:56:42.277 22779 22779 F DEBUG   : ABI: 'arm'
11-24 20:56:42.278 22779 22779 F DEBUG   : pid: 22574, tid: 22762, name: SDLThread  >>> org.test.myapp <<<
11-24 20:56:42.278 22779 22779 F DEBUG   : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
11-24 20:56:42.278 22779 22779 F DEBUG   :     r0  00000000  r1  000058ea  r2  00000006  r3  00000008
11-24 20:56:42.278 22779 22779 F DEBUG   :     r4  0000582e  r5  000058ea  r6  cc61786c  r7  0000010c
11-24 20:56:42.278 22779 22779 F DEBUG   :     r8  cbd78a50  r9  00000002  r10 e4bcd100  r11 cc617898
11-24 20:56:42.278 22779 22779 F DEBUG   :     ip  eab5e3d8  sp  cc617858  lr  eaacd621  pc  eaac4e5e
11-24 20:56:42.279 22779 22779 F DEBUG   : 
11-24 20:56:42.279 22779 22779 F DEBUG   : backtrace:
11-24 20:56:42.279 22779 22779 F DEBUG   :     #00 pc 0001ce5e  /system/lib/libc.so (abort+58)
11-24 20:56:42.279 22779 22779 F DEBUG   :     #01 pc 001ba620  /data/app/org.test.myapp-nd6pZVJ7QMuG5eEj_BldjA==/lib/arm/libpython3.7m.so (offset 0x83000)

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.

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. Moreover, I am using buildozer to build the apk file and since I am not very expert in this stuff thus I don't know how to enable debug in p4a commands to further get more logs to help frill down the exact issue. Kindly guide me to do the needful.

iruriksl commented 4 years ago

Anyway, my guess is that one of the libraries was incorrectly built because not all dependencies were present, and cleaning up (rm -rf .buildozer in the project dir) then building again buildozer android debug) would solve the problem.

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.

tshirtman commented 4 years ago

11-24 20:56:42.277 22779 22779 F DEBUG : 11-24 20:56:42.277 22779 22779 F DEBUG : Build fingerprint: 'xiaomi/onc/onc:9/PKQ1.181021.001/V11.0.3.0.PFFINXM:user/release-keys' 11-24 20:56:42.277 22779 22779 F DEBUG : Revision: '0' 11-24 20:56:42.277 22779 22779 F DEBUG : ABI: 'arm' 11-24 20:56:42.278 22779 22779 F DEBUG : pid: 22574, tid: 22762, name: SDLThread >>> org.test.myapp <<< 11-24 20:56:42.278 22779 22779 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- 11-24 20:56:42.278 22779 22779 F DEBUG : r0 00000000 r1 000058ea r2 00000006 r3 00000008 11-24 20:56:42.278 22779 22779 F DEBUG : r4 0000582e r5 000058ea r6 cc61786c r7 0000010c 11-24 20:56:42.278 22779 22779 F DEBUG : r8 cbd78a50 r9 00000002 r10 e4bcd100 r11 cc617898 11-24 20:56:42.278 22779 22779 F DEBUG : ip eab5e3d8 sp cc617858 lr eaacd621 pc eaac4e5e 11-24 20:56:42.279 22779 22779 F DEBUG : 11-24 20:56:42.279 22779 22779 F DEBUG : backtrace: 11-24 20:56:42.279 22779 22779 F DEBUG : #00 pc 0001ce5e /system/lib/libc.so (abort+58) 11-24 20:56:42.279 22779 22779 F DEBUG : #01 pc 001ba620 /data/app/org.test.myapp-nd6pZVJ7QMuG5eEj_BldjA==/lib/arm/libpython3.7m.so (offset 0x83000)

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

requirements = hostpython3, libffi, openssl, sdl2_image, sdl2_mixer, sdl2_ttf, sqlite3, python3, sdl2, setuptools, six, pyjnius, android, kivy

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.

requirements = python3, kivy

Kindly help me out.

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.

iruriksl commented 4 years ago

11-24 20:56:42.277 22779 22779 F DEBUG : 11-24 20:56:42.277 22779 22779 F DEBUG : Build fingerprint: 'xiaomi/onc/onc:9/PKQ1.181021.001/V11.0.3.0.PFFINXM:user/release-keys' 11-24 20:56:42.277 22779 22779 F DEBUG : Revision: '0' 11-24 20:56:42.277 22779 22779 F DEBUG : ABI: 'arm' 11-24 20:56:42.278 22779 22779 F DEBUG : pid: 22574, tid: 22762, name: SDLThread >>> org.test.myapp <<< 11-24 20:56:42.278 22779 22779 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- 11-24 20:56:42.278 22779 22779 F DEBUG : r0 00000000 r1 000058ea r2 00000006 r3 00000008 11-24 20:56:42.278 22779 22779 F DEBUG : r4 0000582e r5 000058ea r6 cc61786c r7 0000010c 11-24 20:56:42.278 22779 22779 F DEBUG : r8 cbd78a50 r9 00000002 r10 e4bcd100 r11 cc617898 11-24 20:56:42.278 22779 22779 F DEBUG : ip eab5e3d8 sp cc617858 lr eaacd621 pc eaac4e5e 11-24 20:56:42.279 22779 22779 F DEBUG : 11-24 20:56:42.279 22779 22779 F DEBUG : backtrace: 11-24 20:56:42.279 22779 22779 F DEBUG : #00 pc 0001ce5e /system/lib/libc.so (abort+58) 11-24 20:56:42.279 22779 22779 F DEBUG : #1 pc 001ba620 /data/app/org.test.myapp-nd6pZVJ7QMuG5eEj_BldjA==/lib/arm/libpython3.7m.so (offset 0x83000)

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

requirements = hostpython3, libffi, openssl, sdl2_image, sdl2_mixer, sdl2_ttf, sqlite3, python3, sdl2, setuptools, six, pyjnius, android, kivy

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.

requirements = python3, kivy

Kindly help me out.

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

iruriksl commented 4 years ago

if name == 'main':

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. Kindly elaborate the needful to be done.

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.

AndreMiras commented 4 years ago

I think he was mentioning the underscore __main__ but that's a markdown formatting issue. Use back quotes to share the code so it doesn't happen

robertpfeiffer commented 4 years ago

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.

iruriksl commented 4 years ago

I think he was mentioning the underscore __main__ but that's a markdown formatting issue. Use back quotes to share the code so it doesn't happen

Yes! I am still trying with double quotes itself and more than 100 times with different versions as per follows: PFA the source code in use main.txt

I am able to build app successfully and installed on Samsung Galaxy A5 (2016). It is crashing on run. The error in crash references to libpython3.7m.so which means some library modules linking is missing can you tell me what all lib**.so should be available in app to successfully run the app on mobile. Below is the one I found in the app build on my Mac as per following specifications:

Building environment: Python: 3.7.[1-7] OS: MacOS High Sierra (10.13.6) Kivy: 1.11.1 Cython: 0.29.[9-13]

buildozer.spec: requirements python3,kivy

libs in APK: /lib/armeabi-v7a/ /lib/armeabi-v7a/libssl1.1.so /lib/armeabi-v7a/libsqlite3.so /lib/armeabi-v7a/libpython3.7m.so /lib/armeabi-v7a/libmain.so /lib/armeabi-v7a/libhidapi.so /lib/armeabi-v7a/libffi.so /lib/armeabi-v7a/libcrypto1.1.so /lib/armeabi-v7a/libSDL2_ttf.so /lib/armeabi-v7a/libSDL2_mixer.so /lib/armeabi-v7a/libSDL2_image.so /lib/armeabi-v7a/libSDL2.so

crash logcat error: 04-11 12:32:35.636 6647 6647 V pythonutil: Loading library: python3.7m 04-11 12:32:35.641 6647 6647 V pythonutil: Loading library: main 04-11 12:32:35.644 6647 6647 V pythonutil: Failed to load _io.so or unicodedata.so...but that's okay. 04-11 12:32:35.645 6647 6647 V pythonutil: Unsatisfied linker when loading ctypes 04-11 12:32:35.645 6647 6647 V pythonutil: Loaded everything! 04-11 12:32:35.645 6647 6647 V SDL : nativeSetupJNI() 04-11 12:32:35.645 6647 6647 V SDL : AUDIO nativeSetupJNI() 04-11 12:32:35.645 6647 6647 V SDL : CONTROLLER nativeSetupJNI() 04-11 12:32:35.670 6647 6647 D hidapi : Initializing Bluetooth 04-11 12:32:35.671 6647 6647 D hidapi : Couldn't initialize Bluetooth, missing android.permission.BLUETOOTH 04-11 12:32:35.701 6647 6647 V PythonActivity: Setting env vars for start.c and Python to use 04-11 12:32:35.702 6647 6647 V PythonActivity: Access to our meta-data... 04-11 12:32:35.703 6647 6647 I PythonActivity: Surface will NOT be transparent 04-11 12:32:35.703 6647 6647 V PythonActivity: onResume() 04-11 12:32:35.703 6647 6647 V SDL : onResume() 04-11 12:32:35.706 2873 17007 V WindowManager: Relayout Window{38b5f99d0 u0 org.kvcalc.kvcalc/org.kivy.android.PythonActivity}: viewVisibility=0 req=1080x1920 WM.LayoutParams{(0,0)(fillxfill) sim=#20 ty=1 fl=#1810100 pfl=0x20000 fmt=-3 wanim=0x1030001 vsysui=0x400 sysuil=true needsMenuKey=2 naviIconColor=0} 04-11 12:32:35.707 2308 2308 I SurfaceFlinger: id=1091 createSurf (1080x1920),1 flag=4, org.kvcalc.kvcalc/org.kivy.android.PythonActivity 04-11 12:32:35.714 6647 6647 D ViewRootImpl@1d0bff0[PythonActivity]: Relayout returned: oldFrame=[0,0][1080,1920] newFrame=[0,0][1080,1920] result=0x7 surface={isValid=true -984893440} surfaceGenerationChanged=true 04-11 12:32:35.731 6647 6715 D mali_winsys: EGLint new_window_surface(egl_winsys_display, void, EGLSurface, EGLConfig, egl_winsys_surface, egl_color_buffer_format, EGLBoolean) returns 0x3000, [1080x1920]-format:1 04-11 12:32:35.731 6647 6647 D ViewRootImpl@1d0bff0[PythonActivity]: mHardwareRenderer.updateSurface() mSurface={isValid=true -984893440} 04-11 12:32:35.737 2873 11571 D WindowManager: addWindow: android.view.IWindow$Stub$Proxy@2f60f6c displayId=0 04-11 12:32:35.739 2873 3016 V WindowManager: Relayout Window{a6761cad0 u0 SurfaceView - org.kvcalc.kvcalc/org.kivy.android.PythonActivity}: viewVisibility=0 req=1080x1848 WM.LayoutParams{(0,72)(1080x1848) gr=#800033 ty=1001 fl=#4218 pfl=0x10040 fmt=4 naviIconColor=0} 04-11 12:32:35.740 2308 2308 I SurfaceFlinger: id=1092 createSurf (1080x1848),4 flag=404, SurfaceView - org.kvcalc.kvcalc/org.kivy.android.PythonActivity 04-11 12:32:35.741 2308 2308 I SurfaceFlinger: id=1093 createSurf (1080x1848),-1 flag=20404, SurfaceView - org.kvcalc.kvcalc/org.kivy.android.PythonActivity 04-11 12:32:35.748 6647 6647 D SurfaceView: Relayout returned: oldFrame=[0,0][0,0] newFrame=[0,72][1080,1920] result=0x7 surface={Surface(name=null)/@0xb350e87 isValid=true -984834048} 04-11 12:32:35.748 6647 6647 V SDL : surfaceCreated() 04-11 12:32:35.748 6647 6647 V SDL : surfaceChanged() 04-11 12:32:35.748 6647 6647 V SDL : pixel format RGB_565 04-11 12:32:35.749 6647 6647 V SDL : Window size: 1080x1848 04-11 12:32:35.749 6647 6647 V SDL : Device size: 1080x1920 04-11 12:32:35.753 2873 4071 I bsthal : bhy_batch: handle=1, flags=0, period_ns=20000000, timeout=0 04-11 12:32:35.753 2873 4071 D bsthal : Replace timeout to 0 04-11 12:32:35.756 2873 4071 I bsthal : bhy_activate: handle=1, enabled=1 04-11 12:32:35.756 6647 6647 D SensorManager: registerListener :: 7184, BOSCH Accelerometer Sensor, 20000, 0, 04-11 12:32:35.757 6647 6647 V SDL : nativeResume() 04-11 12:32:35.757 6647 6647 D SensorManager: registerListener fail :: 7184, BOSCH Accelerometer Sensor, 20000, 0, 04-11 12:32:35.757 2873 3000 D WindowManager: finishDrawingWindow: Window{a6761cad0 u0 SurfaceView - org.kvcalc.kvcalc/org.kivy.android.PythonActivity} mDrawState=DRAW_PENDING 04-11 12:32:35.758 6647 6827 V SDL : Running main function SDL_main from library /data/app/org.kvcalc.kvcalc-1/lib/arm/libmain.so 04-11 12:32:35.758 6647 6827 V PythonActivity: appConfirmedActive() -> preparing loading screen removal 04-11 12:32:35.758 6647 6827 V SDL : nativeRunMain() 04-11 12:32:35.761 6647 6827 I python : Initializing Python for Android 04-11 12:32:35.761 6647 6827 I python : Setting additional env vars from p4a_env_vars.txt 04-11 12:32:35.762 6647 6827 I python : Changing directory to the one provided by ANDROID_ARGUMENT 04-11 12:32:35.762 6647 6827 I python : /data/user/0/org.kvcalc.kvcalc/files/app 04-11 12:32:35.762 6647 6827 I python : Preparing to initialize python 04-11 12:32:35.762 6647 6827 I python : _python_bundle dir exists 04-11 12:32:35.762 6647 6827 I python : calculated paths to be... 04-11 12:32:35.762 6647 6827 I python : /data/user/0/org.kvcalc.kvcalc/files/app/_python_bundle/stdlib.zip:/data/user/0/org.kvcalc.kvcalc/files/app/_python_bundle/modules 04-11 12:32:35.763 6647 6827 I python : set wchar paths... 04-11 12:32:35.774 2873 2927 I bsthal : Sensor [1] sample rate changed, type is 254 04-11 12:32:35.775 2873 2890 V WindowOrientationListener: OrientationSensorJudge.onSensorChanged, Rotation: -1 04-11 12:32:35.775 2873 2890 V WindowOrientationListener: OrientationSensorJudge.onSensorChanged, Rotation: -1 04-11 12:32:35.776 2873 2890 V WindowOrientationListener: OrientationSensorJudge.getProposedRotation, Rotation: 0 04-11 12:32:35.776 2873 2890 V WindowOrientationListener: OrientationSensorJudge.getProposedRotation, Rotation: 0 04-11 12:32:35.776 2873 2890 V WindowManager: rotationForOrientationLw(orient=1, last=0); user=0 sensorRotation=0 mLidState=-1 mDockMode=0 mHdmiPlugged=false 04-11 12:32:35.783 2873 4160 D WindowManager: finishDrawingWindow: Window{38b5f99d0 u0 org.kvcalc.kvcalc/org.kivy.android.PythonActivity} mDrawState=DRAW_PENDING 04-11 12:32:35.784 6647 6647 V InputMethodManager: Starting input: tba=android.view.inputmethod.EditorInfo@6ca41dd nm : org.kvcalc.kvcalc ic=null 04-11 12:32:35.784 6647 6647 I InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus 04-11 12:32:35.792 2873 11577 D InputTransport: Input channel constructed: fd=406 04-11 12:32:35.792 2873 11577 D InputTransport: Input channel destroyed: fd=406 04-11 12:32:35.793 3710 3710 I SKBD : SamsungKeypad onFinishInput took nanoTime: 327000 04-11 12:32:35.793 3710 3710 I SKBD : SamsungKeypad [IMI] onStartInput - caller packageName : org.kvcalc.kvcalc 04-11 12:32:35.793 6647 6647 D InputTransport: Input channel constructed: fd=70 04-11 12:32:35.793 6647 6647 D InputTransport: Input channel destroyed: fd=59 04-11 12:32:35.797 2873 2897 I WindowManager_SurfaceController: Destroying surface Surface(name=org.kvcalc.kvcalc/org.kivy.android.PythonActivity) called by com.android.server.wm.WindowStateAnimator.destroyDeferredSurfaceLocked:1182 com.android.server.wm.WindowStateAnimator.destroyPreservedSurfaceLocked:807 com.android.server.wm.WindowManagerService.destroyPreservedSurfaceLocked:10254 com.android.server.wm.WindowAnimator.animateLocked:1221 com.android.server.wm.WindowAnimator.-wrap0:-1 com.android.server.wm.WindowAnimator$1.doFrame:181 android.view.Choreographer$CallbackRecord.run:957 android.view.Choreographer.doCallbacks:734 04-11 12:32:35.797 2308 2356 I SurfaceFlinger: id=1090 Removed org.kvcalc.kvcalc/org.kivy.android.PythonActivity (5/7) 04-11 12:32:35.798 2308 3091 I SurfaceFlinger: id=1090 Removed org.kvcalc.kvcalc/org.kivy.android.PythonActivity (-2/7) 04-11 12:32:35.798 2873 461 V WindowManager: Relayout Window{a6761cad0 u0 SurfaceView - org.kvcalc.kvcalc/org.kivy.android.PythonActivity}: viewVisibility=0 req=1080x1848 WM.LayoutParams{(0,72)(1080x1848) gr=#800033 ty=1001 fl=#4218 pfl=0x10040 fmt=4 naviIconColor=0} 04-11 12:32:35.802 6647 6647 D SurfaceView: Relayout returned: oldFrame=[0,72][1080,1920] newFrame=[0,72][1080,1920] result=0x1 surface={Surface(name=null)/@0xb350e87 isValid=true -984832000} 04-11 12:32:35.802 2873 12505 D WindowManager: finishDrawingWindow: Window{a6761cad0 u0 SurfaceView - org.kvcalc.kvcalc/org.kivy.android.PythonActivity} mDrawState=HAS_DRAWN 04-11 12:32:35.806 2873 4009 V WindowManager: Relayout Window{38b5f99d0 u0 org.kvcalc.kvcalc/org.kivy.android.PythonActivity}: viewVisibility=0 req=1080x1920 WM.LayoutParams{(0,0)(fillxfill) sim=#20 ty=1 fl=#1810900 pfl=0x20000 fmt=-3 wanim=0x1030001 vsysui=0x500 sysuil=true needsMenuKey=2 naviIconColor=0} 04-11 12:32:35.807 2308 2308 D SurfaceFlinger: Display[0] configurations ( current): 04-11 12:32:35.807 2308 2308 D SurfaceFlinger: 0: 1080x1920, xdpi=422.029999, ydpi=424.069000, refresh=16949152 04-11 12:32:35.807 2308 2308 D SurfaceFlinger: numHwLayers=4, flags=00000000 04-11 12:32:35.807 2308 2308 D SurfaceFlinger: type | handle | hint | flag | tr | blnd | format | source crop (l,t,r,b) | frame | name 04-11 12:32:35.807 2308 2308 D SurfaceFlinger: -----------+----------+------+------+----+------+-------------+--------------------------------+------------------------+------ 04-11 12:32:35.807 2308 2308 D SurfaceFlinger: GLES | 00000000 | 0000 | 0220 | 00 | 0105 | ? ffffffff | 0.0, 0.0, -1.0, -1.0 | 0, 72, 1080, 1920 | SurfaceView - org.kvcalc.kvcalc/org.kivy.android.PythonActivity 04-11 12:32:35.807 2308 2308 D SurfaceFlinger: HWC | ec38d0e0 | 0000 | 0000 | 00 | 0105 | RGBA_8888 | 0.0, 0.0, 1080.0, 1920.0 | 0, 0, 1080, 1920 | org.kvcalc.kvcalc/org.kivy.android.PythonActivity 04-11 12:32:35.807 2308 2308 D SurfaceFlinger: HWC | ec877180 | 0000 | 0000 | 00 | 0105 | RGBA_8888 | 0.0, 0.0, 1080.0, 72.0 | 0, 0, 1080, 72 | StatusBar 04-11 12:32:35.807 2308 2308 D SurfaceFlinger: FB TARGET | ec876280 | 0000 | 0000 | 00 | 0105 | RGBA_8888 | 0.0, 0.0, 1080.0, 1920.0 | 0, 0, 1080, 1920 | HWC_FRAMEBU 04-11 12:32:35.807 2308 2308 D SurfaceFlinger: FFER_TARGET 04-11 12:32:35.808 2873 2890 D WindowManager: set systemUiVisibility of statusbar : systemUiFlags= 0x508 fullscreenStackSysUiFlag= 0x0 04-11 12:32:35.810 2873 24443 D WindowManager: adjustSystemUiVisibilityLw : vis= 0x508 04-11 12:32:35.811 6647 6647 D ViewRootImpl@1d0bff0[PythonActivity]: Relayout returned: oldFrame=[0,0][1080,1920] newFrame=[0,0][1080,1920] result=0x1 surface={isValid=true -984893440} surfaceGenerationChanged=false 04-11 12:32:35.827 6647 6827 F libc : Fatal signal 6 (SIGABRT), code -6 in tid 6827 (SDLThread) 04-11 12:32:35.829 2227 2227 W : debuggerd: handling request: pid=6647 uid=10184 gid=10184 tid=6827 04-11 12:32:35.934 6830 6830 F DEBUG : *** 04-11 12:32:35.935 6830 6830 F DEBUG : Build fingerprint: 'samsung/a5xeltexx/a5xelte:7.0/NRD90M/A510FXXS8CSI4:user/release-keys' 04-11 12:32:35.935 6830 6830 F DEBUG : Revision: '9' 04-11 12:32:35.935 6830 6830 F DEBUG : ABI: 'arm' 04-11 12:32:35.935 6830 6830 F DEBUG : pid: 6647, tid: 6827, name: SDLThread >>> org.kvcalc.kvcalc <<< 04-11 12:32:35.935 6830 6830 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- 04-11 12:32:35.935 6830 6830 F DEBUG : r0 00000000 r1 00001aab r2 00000006 r3 00000008 04-11 12:32:35.935 6830 6830 F DEBUG : r4 c8a80978 r5 00000006 r6 c8a80920 r7 0000010c 04-11 12:32:35.935 6830 6830 F DEBUG : r8 c8d56a50 r9 00000002 sl c8968100 fp c8a7f958 04-11 12:32:35.935 6830 6830 F DEBUG : ip 00000000 sp c8a7f8f8 lr e73c04c7 pc e73c2d30 cpsr 600f0010 04-11 12:32:35.942 6830 6830 F DEBUG : 04-11 12:32:35.942 6830 6830 F DEBUG : backtrace: 04-11 12:32:35.942 6830 6830 F DEBUG : #00 pc 0004ad30 /system/lib/libc.so (tgkill+12) 04-11 12:32:35.942 6830 6830 F DEBUG : #01 pc 000484c3 /system/lib/libc.so (pthread_kill+34) 04-11 12:32:35.942 6830 6830 F DEBUG : #02 pc 0001dd99 /system/lib/libc.so (raise+10) 04-11 12:32:35.942 6830 6830 F DEBUG : #03 pc 00019521 /system/lib/libc.so (__libc_android_abort+34) 04-11 12:32:35.942 6830 6830 F DEBUG : #04 pc 00017160 /system/lib/libc.so (abort+4) 04-11 12:32:35.942 6830 6830 F DEBUG : #05 pc 001ba620 /data/app/org.kvcalc.kvcalc-1/lib/arm/libpython3.7m.so (offset 0x83000) 04-11 12:32:36.152 3528 3922 D EPDG -- [EPDGService]: onDataActivity: direction=3

kden416 commented 4 years ago

same problem, but after many taps on screen while app is loading, application starts successfully. python 3.8 kivy and kivymd from master test application with two buttons and do nothing.

abdullahahmad-creator commented 3 years ago

Check my app problem

python file

import pymysql from kivymd.app import MDApp from kivy.lang.builder import Builder from kivy.uix.screenmanager import ScreenManager, Screen from kivy.uix.boxlayout import BoxLayout from kivy.properties import ObjectProperty from datetime import date from kivymd.uix.button import MDFlatButton from kivymd.uix.dialog import MDDialog from kivymd.uix.datatables import MDDataTable from kivy.metrics import dp

screen_helper = """

variables

ScreenManager: Main_Screen: Login_Screen: Signup_Screen: Navigation_Screen: pro: ser: acc: dis: pay:

for adding pic

MyTile@SmartTile

main screen

: name: 'main_s' MDCard: size_hint: None, None size: root.width, root.height pos_hint: {"center_x": 0.5, "center_y": 0.5} elevation: 10 padding: 25 spacing: 25 orientation: 'vertical' #MDGridLayout: # cols: 1 # adaptive_height: True # padding: dp(4), dp(4) # spacing: dp(4) # MyTile: # source: "ico.png" Image: source: "ico.png" MDRoundFlatButton: text: 'Login' pos_hint: {'center_x':0.5,'center_y':0.6} on_press: root.manager.current = 'login_s' MDRoundFlatButton: text: 'Signup' pos_hint: {'center_x':0.5,'center_y':0.5} on_press: root.manager.current = 'signup_s' MDRoundFlatButton: text: 'Theme' pos_hint: {'center_x':0.5,'center_y':0.5} on_press: app.theme() # login screen : name: 'login_s' ScrollView: MDCard: size_hint: None, None size: root.width, root.height pos_hint: {"center_x": 0.5, "center_y": 0.5} elevation: 10 padding: 25 spacing: 25 orientation: 'vertical' MDLabel: id: welcome_label text: "WELCOME BACK" font_size: 40 halign: 'center' size_hint_y: None height: self.texture_size[1] padding_y: 15 MDTextFieldRound: id: em hint_text: "E-Mail" icon_right: "account" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} MDTextFieldRound: id: ps hint_text: "Password" icon_right: "eye-off" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} password: True MDRoundFlatButton: text: "Login" font_size: 12 pos_hint: {"center_x": 0.5} on_press: root.login() MDLabel: id: simple_text text: "Don't Have An Account" font_size: 12 halign: 'center' size_hint_y: None height: self.texture_size[1] padding_y: 15 MDRoundFlatButton: text: "Signup" font_size: 12 pos_hint: {"center_x": 0.5} on_press: root.signup() Widget: size_hint_y: None height: 10 # signup screen : name: 'signup_s' MDCard: size_hint: None, None size: root.width, root.height pos_hint: {"center_x": 0.5, "center_y": 0.5} elevation: 10 padding: 25 spacing: 25 orientation: 'vertical' ScrollView: MDCard: size_hint: None, None size: root.width-50, 800 pos_hint: {"center_x": 0.5, "center_y": 0.5} elevation: 10 padding: 25 spacing: 25 orientation: 'vertical' MDLabel: id: welcome_label text: "Create New Account" font_size: 40 halign: 'center' size_hint_y: None height: self.texture_size[1] padding_y: 15 MDTextFieldRound: id: fn hint_text: "First Name" icon_right: "account" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} MDTextFieldRound: id: ln hint_text: "Last Name" icon_right: "account" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} MDTextFieldRound: id: em hint_text: "E-Mail" icon_right: "email" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} MDTextFieldRound: id: ps hint_text: "Password" icon_right: "eye-off" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} password: True MDTextFieldRound: id: ct hint_text: "Country" icon_right: "city" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} MDTextFieldRound: id: cn hint_text: "Contact" icon_right: "contacts" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} MDTextFieldRound: id: gn hint_text: "Gender" icon_right: "gender-male-female" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} MDRoundFlatButton: text: "Create Account" font_size: 12 pos_hint: {"center_x": 0.5} on_press: root.signup() MDLabel: id: simple_text text: "If You Already Have" font_size: 12 halign: 'center' size_hint_y: None height: self.texture_size[1] padding_y: 15 MDRoundFlatButton: text: "Login" font_size: 12 pos_hint: {"center_x": 0.5} on_press: root.login() Widget: size_hint_y: None height: 10 # navigation drawer : ScrollView: MDList: OneLineListItem: text: "Profile" on_press: root.nav_drawer.set_state("close") app.root.current = "pro" OneLineListItem: text: "Services" on_press: root.nav_drawer.set_state("close") app.root.current = "ser" OneLineListItem: text: "Account Info" on_press: root.nav_drawer.set_state("close") app.root.current = "acc" # OneLineListItem: # text: "Discount" # on_press: # root.nav_drawer.set_state("close") # app.root.current = "dis" OneLineListItem: text: "Paymount" on_press: root.nav_drawer.set_state("close") app.root.current = "pay" OneLineListItem: text: 'Theme' on_press: app.theme() # navigation screen : name: 'navigation_s' MDToolbar: id: toolbar pos_hint: {"top": 1} elevation: 10 title: 'FDM' left_action_items: [["menu", lambda x: nav_drawer.set_state("open")]] MDNavigationLayout: # id: nl x: toolbar.height ScreenManager: id: screen_manager MDNavigationDrawer: id: nav_drawer ContentNavigationDrawer: screen_manager: screen_manager nav_drawer: nav_drawer : name: "pro" on_pre_enter: root.fetch() MDCard: size_hint: None, None size: root.width, root.height pos_hint: {"center_x": 0.5, "center_y": 0.5} elevation: 10 # padding: 25 # spacing: 25 orientation: 'vertical' MDToolbar: id: toolbar pos_hint: {"top": 1} elevation: 10 title: 'Profile' left_action_items: [["menu", lambda x: nav_drawer.set_state("open")]] ScrollView: MDCard: size_hint: None, None size: root.width, 500 pos_hint: {"center_x": 0.5, "center_y": 0.5} elevation: 10 padding: 25 spacing: 25 orientation: 'vertical' MDLabel: id: bl text: "Balance: 0" font_size: 20 halign: "left" height: self.texture_size[1] padding_y: 15 MDLabel: id: op text: "Order Pending: 0" font_size: 20 halign: "left" height: self.texture_size[1] padding_y: 15 MDLabel: id: de text: "Pending Order: No Order 0" font_size: 20 halign: "left" height: self.texture_size[1] padding_y: 15 MDLabel: id: pa text: "Pending Amount: 0" font_size: 20 halign: "left" height: self.texture_size[1] padding_y: 15 MDLabel: id: oc text: "Order Completed: 0" font_size: 20 halign: "left" height: self.texture_size[1] padding_y: 15 MDLabel: id: ca text: "Completed Amount: 0" font_size: 20 halign: "left" height: self.texture_size[1] padding_y: 15 MDLabel: id: tor text: "Total Order: 0" font_size: 20 halign: "left" height: self.texture_size[1] padding_y: 15 MDLabel: id: tora text: "Total Order Amount: 0" font_size: 20 halign: "left" height: self.texture_size[1] padding_y: 15 MDRoundFlatButton: text: 'Refresh' pos_hint: {'center_x':0.5,'center_y':0.5} on_press: root.refresh() MDNavigationLayout: x: toolbar.height ScreenManager: id: screen_manager MDNavigationDrawer: id: nav_drawer ContentNavigationDrawer: screen_manager: screen_manager nav_drawer: nav_drawer : name: 'ser' on_pre_enter: root.build() MDCard: id: mdcar size_hint: None, None size: root.width, root.height pos_hint: {"center_x": 0.5, "center_y": 0.5} elevation: 10 # padding: 25 # spacing: 25 orientation: 'vertical' MDToolbar: id: toolbar pos_hint: {"top": 1} elevation: 10 title: 'Services' left_action_items: [["menu", lambda x: nav_drawer.set_state("open")]] MDNavigationLayout: # id: nl x: toolbar.height ScreenManager: id: screen_manager MDNavigationDrawer: id: nav_drawer ContentNavigationDrawer: screen_manager: screen_manager nav_drawer: nav_drawer : name: "acc" on_pre_enter: root.refresh() MDCard: size_hint: None, None size: root.width, root.height pos_hint: {"center_x": 0.5, "center_y": 0.5} elevation: 10 # padding: 25 # spacing: 25 orientation: 'vertical' MDToolbar: id: toolbar pos_hint: {"top": 1} elevation: 10 title: 'Account Info' left_action_items: [["menu", lambda x: nav_drawer.set_state("open")]] ScrollView: MDCard: size_hint: None, None size: root.width, 550 pos_hint: {"center_x": 0.5, "center_y": 0.5} elevation: 10 padding: 25 spacing: 25 orientation: 'vertical' MDLabel: id: welcome_label text: "Account Details" font_size: 40 halign: 'center' size_hint_y: None height: self.texture_size[1] padding_y: 15 MDTextFieldRound: id: fn hint_text: "First Name" icon_right: "account" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} MDTextFieldRound: id: ln hint_text: "Last Name" icon_right: "account" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} # MDTextFieldRound: # id: ps # hint_text: "Password" # icon_right: "eye-off" # size_hint_x: None # width: 200 # font_size: 18 # pos_hint: {"center_x": 0.5} # password: True MDTextFieldRound: id: ct hint_text: "Country" icon_right: "city" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} MDTextFieldRound: id: cn hint_text: "Contact" icon_right: "contacts" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} MDTextFieldRound: id: gn hint_text: "Gender" icon_right: "gender-male-female" size_hint_x: None width: 200 font_size: 18 pos_hint: {"center_x": 0.5} MDLabel: id: simple_text text: "" font_size: 12 halign: 'center' size_hint_y: None height: self.texture_size[1] padding_y: 15 MDRoundFlatButton: text: "Save" font_size: 12 pos_hint: {"center_x": 0.5} on_press: root.save() Widget: size_hint_y: None height: 10 MDNavigationLayout: # id: nl x: toolbar.height ScreenManager: id: screen_manager MDNavigationDrawer: id: nav_drawer ContentNavigationDrawer: screen_manager: screen_manager nav_drawer: nav_drawer : name: "dis" MDCard: size_hint: None, None size: root.width, root.height pos_hint: {"center_x": 0.5, "center_y": 0.5} elevation: 10 # padding: 25 # spacing: 25 orientation: 'vertical' MDToolbar: id: toolbar pos_hint: {"top": 1} elevation: 10 title: 'Discount' left_action_items: [["menu", lambda x: nav_drawer.set_state("open")]] MDLabel: text: "Screen 2" halign: "center" MDNavigationLayout: # id: nl x: toolbar.height ScreenManager: id: screen_manager MDNavigationDrawer: id: nav_drawer ContentNavigationDrawer: screen_manager: screen_manager nav_drawer: nav_drawer : name: "pay" MDCard: size_hint: None, None size: root.width, root.height pos_hint: {"center_x": 0.5, "center_y": 0.5} elevation: 10 # padding: 25 # spacing: 25 orientation: 'vertical' MDToolbar: id: toolbar pos_hint: {"top": 1} elevation: 10 title: 'Payment' left_action_items: [["menu", lambda x: nav_drawer.set_state("open")]] ScrollView: MDCard: size_hint: None, None size: root.width, root.height pos_hint: {"center_x": 0.5, "center_y": 0.5} elevation: 10 padding: 25 spacing: 25 orientation: 'vertical' MDFloatLayout: MDRoundFlatButton: text: "Payoneer" pos_hint: {'center_x': .5, 'center_y': .5} font_size: 25 on_release: root.payoneer() MDFloatLayout: MDRoundFlatButton: text: "Jazzcash" pos_hint: {'center_x': .5, 'center_y': .5} font_size: 25 on_release: root.jazzcash() MDFloatLayout: MDRoundFlatButton: text: "easypaisa" pos_hint: {'center_x': .5, 'center_y': .5} font_size: 25 on_release: root.easypaisa() # MDLabel: # id: easypaisa # text: "easypaisa" # font_size: 25 # halign: 'center' # size_hint_y: None # height: self.texture_size[1] # padding_y: 15 # MDLabel: # id: easyno # text: "031334061349" # font_size: 20 # halign: 'center' # size_hint_y: None # height: self.texture_size[1] # padding_y: 15 # MDLabel: # id: payoneer # text: "Payoneer" # font_size: 25 # halign: 'center' # size_hint_y: None # height: self.texture_size[1] # padding_y: 15 # MDLabel: # id: payaccount # text: "abdullahahmad12488421@gmail.com" # font_size: 20 # halign: 'center' # size_hint_y: None # height: self.texture_size[1] # padding_y: 15 MDNavigationLayout: # id: nl x: toolbar.height ScreenManager: id: screen_manager MDNavigationDrawer: id: nav_drawer ContentNavigationDrawer: screen_manager: screen_manager nav_drawer: nav_drawer """ # main screen class class Main_Screen(Screen): pass # navigation screen class class Navigation_Screen(Screen): def __init__(self,**kwargs): super (Navigation_Screen,self).__init__(**kwargs) # navigation drawer class class ContentNavigationDrawer(BoxLayout): screen_manager = ObjectProperty() nav_drawer = ObjectProperty() def __init__(self,**kwargs): super (ContentNavigationDrawer,self).__init__(**kwargs) def abcd(self,*args): Login_Screen.abcd(self) # login screen class class Login_Screen(Screen): def __init__(self,**kwargs): super (Login_Screen,self).__init__(**kwargs) def abcd(self,*args): Screen.manager.current = 'pro' def login(self,*args): self.ids.simple_text.text = "Wait Please\nLook Like Your Internet Is slow" em = self.ids.em.text ps = self.ids.ps.text em1 = str() ps1 = str() correct = False try: if em =='': self.ids.simple_text.text = "Error E-Mail is Empty" elif ps =='': self.ids.simple_text.text = "Error Password is Empty" else: connection = pymysql.connect(host="sql6.freemysqlhosting.net",user="sql6422502",passwd="pX74cR7NxP",database="sql6422502" ) cursor = connection.cursor() retrive = "select em,ps from login;" #executing the quires cursor.execute(retrive) rows = cursor.fetchall() for row in rows: em1=row[0] ps1=row[1] if em == em1 and ps == ps1: correct = True text = open('important.txt','w') text.write(em+"|#$#|"+ps) text.close() if correct == True: connection.commit() connection.close() self.manager.current = 'pro' else: self.ids.simple_text.text = "Wrong Password\nContact 03150490481 for Password Reset" except: self.ids.simple_text.text = "Error Make Sure You Connected To Internet" def signup(self,*args): self.manager.current = 'signup_s' # signup screen class class Signup_Screen(Screen): def __init__(self,**kwargs): super (Signup_Screen,self).__init__(**kwargs) def login(self,*args): self.manager.current = 'login_s' def signup(self,*args): self.ids.simple_text.text = "Wait Please\nLook Like Your Internet Is slow" # variables a = str(date.today()) date_ = a fn = self.ids.fn.text ln = self.ids.ln.text em = self.ids.em.text ps = self.ids.ps.text ct = self.ids.ct.text cn = self.ids.cn.text gn = self.ids.gn.text try: if fn =='': self.ids.simple_text.text = "Error First Name is Empty" elif em =='': self.ids.simple_text.text = "Error E-Mail is Empty" elif ps =='': self.ids.simple_text.text = "Error Password is Empty" elif cn =='': self.ids.simple_text.text = "Error Contact No is Empty" else: connection = pymysql.connect(host="sql6.freemysqlhosting.net",user="sql6422502",passwd="pX74cR7NxP",database="sql6422502" ) cursor = connection.cursor() acc_d = open('acc.txt','w') acc_d.write(fn+'|&*&|'+ln+"|&*&|"+ps+"|&*&|"+ct+"|&*&|"+cn+"|&*&|"+gn) acc_d.close() retrive = "INSERT INTO login(date,fn,ln,em,ps,ct,cn,gn) VALUES('"+date_+"', '"+fn+"', '"+ln+"', '"+em+"', '"+ps+"', '"+ct+"', '"+cn+"', '"+gn+"' );" cursor.execute(retrive) rows = cursor.fetchall() connection.commit() connection.close() self.manager.current = 'login_s' except: self.ids.simple_text.text = "Error Make Sure You Connected To Internet" # pro screen class class pro(Screen): def __init__(self,**kwargs): super (pro,self).__init__(**kwargs) def fetch(self,*args): text = open('important1.txt','r') tex_r = text.read() self.ids.bl.text,self.ids.op.text,self.ids.oc.text,self.ids.tor.text,self.ids.pa.text,self.ids.ca.text,self.ids.tora.text,self.ids.de.text = tex_r.split("|#$#|") text.close() def refresh(self,*args): bl = self.ids.bl.text op = self.ids.op.text oc = self.ids.oc.text tor = self.ids.tor.text pa = self.ids.pa.text ca = self.ids.ca.text tora = self.ids.tora.text de = self.ids.de.text text = open('important.txt','r') tex_r = text.read() em,ps = tex_r.split("|#$#|") text.close() try: connection = pymysql.connect(host="sql6.freemysqlhosting.net",user="sql6422502",passwd="pX74cR7NxP",database="sql6422502" ) cursor = connection.cursor() retrive = "select bl,op,oc,tor,pa,ca,tora,de from login where em='"+em+"' and ps='"+ps+"';" #executing the quires cursor.execute(retrive) rows = cursor.fetchall() for row in rows: self.ids.bl.text='Balance: '+row[0] self.ids.op.text='Order Pending: '+row[1] self.ids.oc.text='Order Completed: '+row[2] self.ids.tor.text='Total Order: '+row[3] self.ids.pa.text='Pending Amount: '+row[4] self.ids.ca.text='Completed Amount: '+row[5] self.ids.tora.text='Total Order Amount: '+row[6] self.ids.de.text='Pending Order: '+row[7] text1 = open('important1.txt','w') text1.write(self.ids.bl.text+"|#$#|"+self.ids.op.text+"|#$#|"+self.ids.oc.text+"|#$#|"+self.ids.tor.text+"|#$#|"+self.ids.pa.text+"|#$#|"+self.ids.ca.text+"|#$#|"+self.ids.tora.text+"|#$#|"+self.ids.de.text) text1.close() except: text = open('important1.txt','r') tex_r = text.read() self.ids.bl.text,self.ids.op.text,self.ids.oc.text,self.ids.tor.text,self.ids.pa.text,self.ids.ca.text,self.ids.tora.text,self.ids.de.text = tex_r.split("|#$#|") text.close() # ser screen class class ser(Screen): dialog=None dialog1=None def build(self): connection = pymysql.connect(host="sql6.freemysqlhosting.net",user="sql6422502",passwd="pX74cR7NxP",database="sql6422502" ) cursor = connection.cursor() retrive = "select pl,ca,pr from ser;" #executing the quires cursor.execute(retrive) rows = cursor.fetchall() # a = [] # for row in rows: # a.append(row[0],row[1],row[2]) #commiting the connection then closing it. connection.commit() connection.close() table = MDDataTable(pos_hint = {'center_x':0.5,'center_y':0.5},size_hint = (0.9,0.6),check = True,rows_num=7, column_data =[ ("Plateform",dp(30)), ('Categories',dp(30)), ('Price',dp(30)),], row_data = rows ) table.bind(on_check_press = self.check_press) table.bind(on_row_press = self.row_press) self.ids.mdcar.add_widget(table) def check_press(self,instance_table,current_row): text = open('important.txt','r') tex_r = text.read() em,ps = tex_r.split("|#$#|") text.close() try: connection = pymysql.connect(host="sql6.freemysqlhosting.net",user="sql6422502",passwd="pX74cR7NxP",database="sql6422502" ) cursor = connection.cursor() retrive = "INSERT INTO orders(pl,ca,pr,em,ps) VALUES('"+current_row[0]+"', '"+current_row[1]+"', '"+current_row[2]+"', '"+em+"', '"+ps+"' );" cursor.execute(retrive) rows = cursor.fetchall() connection.commit() connection.close() if not self.dialog1: self.dialog1 = MDDialog( text="You Buy This Service Successfully", buttons=[ MDFlatButton( text="Ok, Thanks",on_release=self.close_error1 ), ], ) self.dialog1.open() except: if not self.dialog: self.dialog = MDDialog( text="Check Your Internet", buttons=[ MDFlatButton( text="Ok",on_release=self.close_error ), ], ) self.dialog.open() def close_error1(self, *args): self.dialog1.dismiss(force=True) def close_error(self, *args): self.dialog.dismiss(force=True) def row_press(self,instance_table,current_row): pass # acc screen class class acc(Screen): def __init__(self,**kwargs): super (acc,self).__init__(**kwargs) def refresh(self, *args): try: acc_d = open('acc.txt','r') a = acc_d.read() acc_d.close() self.ids.fn.text,self.ids.ln.text,ps,self.ids.ct.text,self.ids.cn.text,self.ids.gn.text = a.split('|&*&|') except: print('e') acc_d1 = open('important.txt','r') a = acc_d1.read() em,ps = a.split('|#$#|') acc_d1.close() connection = pymysql.connect(host="sql6.freemysqlhosting.net",user="sql6422502",passwd="pX74cR7NxP",database="sql6422502" ) cursor = connection.cursor() retrive = "select fn,ln,ps,ct,cn,gn from login where em='"+em+"' and ps='"+ps+"';" cursor.execute(retrive) rows = cursor.fetchall() for i in rows: acc_d = open('acc.txt','w') acc_d.write(i[0]+'|&*&|'+i[1]+"|&*&|"+i[2]+"|&*&|"+i[3]+"|&*&|"+i[4]+"|&*&|"+i[5]) acc_d.close() def save(self, *args): fn = self.ids.fn.text ln = self.ids.ln.text ct = self.ids.ct.text cn = self.ids.cn.text gn = self.ids.gn.text acc_d1 = open('important.txt','r') a = acc_d1.read() em,ps = a.split('|#$#|') acc_d1.close() try: connection = pymysql.connect(host="sql6.freemysqlhosting.net",user="sql6422502",passwd="pX74cR7NxP",database="sql6422502" ) cursor = connection.cursor() retrive = "update login set fn='"+fn+"',ln='"+ln+"',ps='"+ps+"',ct='"+ct+"',cn='"+cn+"',gn='"+gn+"' where em='"+em+"' and ps='"+ps+"';" acc_d = open('acc.txt','w') acc_d.write(fn+'|&*&|'+ln+"|&*&|"+ps+"|&*&|"+ct+"|&*&|"+cn+"|&*&|"+gn) acc_d.close() cursor.execute(retrive) rows = cursor.fetchall() connection.commit() connection.close() except: self.ids.simple_text.text = "Error Make Sure You Connected To Internet" # dis screen class class dis(Screen): pass # pay screen class class pay(Screen): dialog = None dialog1 = None dialog2 = None def __init__(self,**kwargs): super (pay,self).__init__(**kwargs) def payoneer(self, *args): if not self.dialog: self.dialog = MDDialog( text="E-Mail: abdullahahmad12488421@gmail.com", buttons=[ MDFlatButton( text="Ok",on_release=self.payoneer_dialog_close ), ], ) self.dialog.open() def payoneer_dialog_close(self, *args): self.dialog.dismiss(force=True) def jazzcash(self, *args): if not self.dialog1: self.dialog1 = MDDialog( text="Jazzcash: 03059977037", buttons=[ MDFlatButton( text="Ok",on_release=self.jazzcash_dialog_close ), ], ) self.dialog1.open() def jazzcash_dialog_close(self, *args): self.dialog1.dismiss(force=True) def easypaisa(self, *args): if not self.dialog2: self.dialog2 = MDDialog( text="Easypaisa: 031334061349", buttons=[ MDFlatButton( text="Ok",on_release=self.easypaisa_dialog_close ), ], ) self.dialog2.open() def easypaisa_dialog_close(self, *args): self.dialog2.dismiss(force=True) # Create the screen manager sm = ScreenManager() sm.add_widget(Main_Screen(name='main_s')) sm.add_widget(Login_Screen(name='login_s')) sm.add_widget(Signup_Screen(name='signup_s')) sm.add_widget(Navigation_Screen(name='navigation_s')) sm.add_widget(pro(name='pro')) sm.add_widget(ser(name='ser')) sm.add_widget(acc(name='acc')) sm.add_widget(dis(name='dis')) sm.add_widget(pay(name='pay')) count = 0 # main class class DemoApp(MDApp): def build(self): screen = Builder.load_string(screen_helper) return screen def theme(self): global count if count == 0: count = 1 self.theme_cls.theme_style = "Dark" self.theme_cls.primary_palette = "BlueGray" else: count = 0 self.theme_cls.theme_style = "Light" self.theme_cls.primary_palette = "Blue" def variable(self): global count DemoApp().run() buildozer.spec [app] # (str) Title of your application title = FDM # (str) Package name package.name = com.icd.fdm # (str) Package domain (needed for android/ios packaging) package.domain = org.test # (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,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 requirements # comma separated e.g. requirements = sqlite3,kivy requirements = python3,kivy,pymysql,kivymd,datetime,kivmob,datetime # (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 = ico.png # (str) Icon of the application icon.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 Specific # # author = ICDeveloper© 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 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 = 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' p4a.branch = master # For test ads, use application ID ca-app-pub-3940256099942544~3347511713 android.meta_data = com.google.android.gms.ads.APPLICATION_ID={pub-2946877806572624} # (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.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 = # (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 = 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 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 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 # (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 = 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 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: ()" # (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
Igbana commented 3 years ago

What I noticed was that kivy projects were building well, but kivymd projects were crashing after the splashscreen. This worked for me

requirements = python3,kivy==2.0.0,https://github.com/kivymd/KivyMd/archive/master.zip,pygments,sdl2_ttf==2.0.15,pillow,docutils,plyer

Julian-O commented 1 year ago

Closing as a support issue that's got out of control.