Skip to content

Error when used with kivy in an apk #344

Open

Description

@avj-jpg

So I am trying to use pyrebase in a kivy project. My apk keeps crashing. The errors are all regarding import of modules like gcloud, oauth2client, .... (it is a long list). I kept fixing them one by one by including these modules under 'requirements' in my buildozer.spec. This is what it looks right now:

requirements = python3,kivy==1.11.1,kivymd, pyjnius, pillow, android, kivmob, pyrebase, requests, gcloud, oauth2client, requests-toolbelt, python-jwt, pycrypto,pyasn1, pyasn1_modules, rsa, google-api-python-client, google-cloud, google-cloud-storage, protobuf

but my apk still crashes with the error:
ModuleNotFoundError: No module named 'google.protobuf'

I have included protobuf in the requirements, but that is not helping. How do I fix this? Can you also give me a list of these dependencies that pyrebase requires?

Activity

  1. Windsurfer0000 commented on Aug 11, 2020

    @Windsurfer0000

    hey have you found a solution for that ?

  2. daniel-iova commented on Sep 3, 2020

    @daniel-iova

    Did you find a solution ?

  3. DafzNet commented on Sep 14, 2020

    @DafzNet

    Has anyone found a solution

  4. nihilok commented on Oct 17, 2020

    @nihilok

    I tried all day yesterday to solve this and think I have a solution, at least a temporary workaround:

    the broken import can be found in
    ::project dir::/.buildozer/android/platform/build-arm64-v8a/build/python-installs/::app name::/gcloud/_helpers.py (or some variation of this path depending on your build) - you can get the exact path from the log.

    edit the file (nano or subl whatever)

    remove the import (around line 28) and also remove (or comment out) the function referencing google.protobuf (~ line 500):

    def _datetime_to_pb_timestamp(when):
        """Convert a datetime object to a Timestamp protobuf.
    
        :type when: :class:`datetime.datetime`
        :param when: the datetime to convert
    
        :rtype: :class:`google.protobuf.timestamp_pb2.Timestamp`
        :returns: A timestamp protobuf corresponding to the object.
        """
        ms_value = _microseconds_from_datetime(when)
        seconds, micros = divmod(ms_value, 10**6)
        nanos = micros * 10**3
        return timestamp_pb2.Timestamp(seconds=seconds, nanos=nanos)
    

    I tried changing the import to just protobuf but no luck :(

    also had to add this to the code to my main.py when came up against an ssl error:

    import ssl
    ssl._create_default_https_context = ssl._create_unverified_context
    

    Need to try and get to the bottom of why that was needed. Obviously it can't be ideal to just remove a method and I didn't have time to fully check if that method is used, but couldn't see if anything was obvious, but so far I can run my app and interact with Firebase storage without errors!

    Oh yeah, a ton of extra requirements needed in buildozer.spec after getting past google.protobuf:

    requirements = python3,kivy==2.0.0rc1,android,plyer,pyrebase5,cryptography,pycryptodome,python-jwt,jwcrypto,oauth2client,httplib2,pyasn1,pyasn1-modules,rsa,google-cloud,gcloud,google-auth,requests,requests-toolbelt,urllib3,chardet,idna,certifi,Pillow

    Most of them relate to pyrebase.. the "pycryptodome" one is for missing module "Crypto". Always double check on pypi for the correct pip install instruction if unsure.

  5. aidingh commented on Dec 2, 2020

    @aidingh

    Hey! Iam using firebase_admin in my project and had the same error. I did what nihilok did but then ran into google-auth error. Seems alot fo people have the same issue.

  6. aqulline commented on Dec 10, 2020

    @aqulline

    @aidingh same here, i am also using firebase_admin and my app just crash from the start, if you got anything please mail me to----->aqeglipambuya@gmail.com

  7. aidingh commented on Dec 10, 2020

    @aidingh
  8. cmsharma commented on Dec 29, 2020

    @cmsharma

    Hey! We were using Firebase_admin and Pyrebase and we actually did spend a whole week trying to get it to work. I actually checked the code for Pyrebase and took out the essential code from it and made email verification to work. I can tell you how if you want. To be frank we skipped Firestore database completly and went for a real time database. The real time database in Firebase that is. Its as good if you ask me and suits Python fine. If you need more help I can surely help you. But we did skip firestore with firebase_admin all togheter. // Aidin
    …
    ________________________________ Från: aqulline notifications@github.com Skickat: den 10 december 2020 10:13 Till: thisbejim/Pyrebase Pyrebase@noreply.github.com Kopia: aidingh Aidingh@hotmail.com; Mention mention@noreply.github.com Ämne: Re: [thisbejim/Pyrebase] Error when used with kivy in an apk (#344) @aidinghhttps://github.com/aidingh same here, i am also using firebase_admin and my app just crash from the start, if you got anything please mail me to----->aqeglipambuya@gmail.commailto:aqeglipambuya@gmail.com — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub<#344 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEXAHH6PJQZHWWWBVIO6CSTSUCGLJANCNFSM4MZN573A.

    Hey,
    I am using Pyrebase (to connect to Firebase real time database) in my Kivy app. Everything is working fine on Desktop but the app crashes on Android. Could you please help me with this issue?

  9. nihilok commented on Dec 30, 2020

    @nihilok

    Hey,
    I am using Pyrebase (to connect to Firebase real time database) in my Kivy app. Everything is working fine on Desktop but the app crashes on Android. Could you please help me with this issue?

    Did you enable internet permissions in buildozer.spec?

  10. cmsharma commented on Dec 31, 2020

    @cmsharma

    Yeah, Internet permission was enabled!

  11. WithSJ commented on Mar 18, 2021

    @WithSJ

    i used all this
    requirements = python3,
    kivy,
    kivymd,
    sdl2_ttf==2.0.15,
    plyer,
    requests,
    idna,
    certifi,
    chardet,
    urllib3,
    firebase_admin,
    google-cloud-storage,
    google-api-python-client,
    google-api-core,
    google-cloud-firestore,
    cachecontrol,
    msgpack,
    google-auth,
    protobuf,
    pytz,
    googleapis-common-protos,
    grpcio,
    httplib2,
    uritemplate,
    google-auth-httplib2,
    rsa,
    cachetools,
    pyasn1-modules,
    proto-plus,
    google-cloud-core,
    google-resumable-media,
    google-crc32c,
    cffi,
    pycparser,
    pyasn1

    (list) Permissions

    android.permissions = INTERNET

    but still get error

    03-18 14:43:35.632 1751 17252 I python : ReferenceError: weakly-referenced object no longer exists

  12. CoutinhoElias commented on May 12, 2021

    @CoutinhoElias

    Problems when using pyrebase with kivy:

    I have two theories:
    1 - Or these imports are wrong:
    a) from pyrebase import pyrebase
    b) import pyrebase

    I tested both and it only works on the computer.

    2 - Or my requirement is incorrect regarding the pyrebase:
    requirements = python3, kivy == 2.0.0, https: //github.com/kivymd/KivyMD/archive/master.zip,pygments,sdl2_ttf==2.0.15,pillow, requests, certifi, urllib3, chardet, idna, plyer, peewee, pyrebase

    Note: Without pyrebase and commenting on the functions I use pyrebase the system works.

  13. Arjun-nemani commented on May 26, 2021

    @Arjun-nemani

    Hello, I have also been trying to make a login system for my application , it seems like many are in the same boat as me , it works fine for me on pc but was not able to make a apk with it , it keeps asking for more and more modules . Did anyone implement a working login system in kivy with reset password ? Any other solutions other than firebase?

    requirements = hostpython3==3.7.9,python3==3.7.9,kivy,kivymd,pyrebase,requests,urllib3,chardet,idna,gcloud,oauth2client,requests-toolbelt,protobuf_cpp,python-jwt,pycryptodome,httplib2,pyparsing,pyasn1,pyasn1_modules,rsa,jwcrypto,cryptography,firebase_admin

    deprecated, wrapt ( could be requeired by jwcrypto)

    here is a Doc which explains what requirements would be needed

    https://github.com/RobertFlatt/Android-for-Python/tree/main/Android-for-Python-Users#requirements

  14. aqulline commented on May 31, 2021

    @aqulline
  15. 7 remaining items

  16. aqulline commented on Oct 13, 2021

    @aqulline
  17. AlejandroPG10 commented on Apr 16, 2023

    @AlejandroPG10

    After several days working on it, this requirements list didn't make my app crash:

    requirements = python3,kivy==2.0.0,kivymd==0.104.1,mapview,pyrebase,geocoder,email-validator,requests,urllib3,chardet,idna,ratelim,decorator,click,dnspython,pillow,oauth2client,httplib2,pyparsing,pyasn1,pyasn1_modules,virtualenv,six,sh,rsa,requests-toolbelt,python-jwt,pygments,pycryptodome,ptyprocess,protobuf,platformdirs,pexpect,kivy-garden.mapview,kivy-garden,jws,googleapis-common-protos,gcloud,future,filelock,docutils,distlib,backports.entry-points-selectable,jwcrypto,cryptography,Deprecated,wrapt

    You're a genius!
    Thank you so much, it worked for me too!!!

  18. Alexndegwa commented on Jul 25, 2023

    @Alexndegwa

    After several days working on it, this requirements list didn't make my app crash:

    requirements = python3,kivy==2.0.0,kivymd==0.104.1,mapview,pyrebase,geocoder,email-validator,requests,urllib3,chardet,idna,ratelim,decorator,click,dnspython,pillow,oauth2client,httplib2,pyparsing,pyasn1,pyasn1_modules,virtualenv,six,sh,rsa,requests-toolbelt,python-jwt,pygments,pycryptodome,ptyprocess,protobuf,platformdirs,pexpect,kivy-garden.mapview,kivy-garden,jws,googleapis-common-protos,gcloud,future,filelock,docutils,distlib,backports.entry-points-selectable,jwcrypto,cryptography,Deprecated,wrapt

    This was actually working before. Nowdays the bulldozer fails if pycryptodome and cryptography are included. If you exclude them, the resulting APK also crashes since these two are necessary. Has anyone found a solution to this?

  19. Zeikov commented on Sep 27, 2023

    @Zeikov

    bros i really need the help firebase is not working with all requierments keep crashing on my phone

  20. cristianmejiaarias commented on Sep 27, 2023

    @cristianmejiaarias
  21. Zeikov commented on Sep 27, 2023

    @Zeikov

    Sure, i would like to help you. Can we have little meeting if you wan Sent from my iPhoneOn Sep 27, 2023, at 1:02 PM, Zeikov @.> wrote: bros i really need the help firebase is not working with all requierments keep crashing on my phone —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.>

    I will love that do u speak spanish ? wherever u can bro

  22. Zeikov commented on Sep 27, 2023

    @Zeikov

    should i use a older version of pyrebase ? Maybe it will work idk iam trying evrything

  23. cristianmejiaarias commented on Sep 27, 2023

    @cristianmejiaarias
  24. Zeikov commented on Sep 28, 2023

    @Zeikov

    Si hablo español hermano. Podemos revisar tu spec y las librerías que estas usando en tu proyecto. Tengo algunas app funcionando sin ningún problema. Tu me avisas.Sent from my iPhoneOn Sep 27, 2023, at 2:57 PM, Zeikov @.> wrote: Sure, i would like to help you. Can we have little meeting if you wan Sent from my iPhoneOn Sep 27, 2023, at 1:02 PM, Zeikov @.> wrote: bros i really need the help firebase is not working with all requierments keep crashing on my phone —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.> I will love that do u speak spanish ? wherever u can bro —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.>

    genial bro, pues yo ya llevo atorado 2 días en este lio yo puedo en las noches que estoy mas libre te dejo mi correo alejandrobargaglipalermo@gmail.com
    este es mi spec : y al final te adjunto mis librerías
    [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,db,zip

    (list) List of inclusions using pattern matching

    #source.include_patterns = assets/,images/.png

    (list) Source files to exclude (let empty to not exclude anything)

    #source.exclude_exts = spec

    (list) List of directory to exclude (let empty to not exclude anything)

    #source.exclude_dirs = tests, bin, venv

    (list) List of exclusions using pattern matching

    Do not prefix with './'

    #source.exclude_patterns = license,images//.jpg

    (str) Application versioning (method 1)

    version = 0.1

    (str) Application versioning (method 2)

    version.regex = version = '"['"]

    version.filename = %(source.dir)s/main.py

    (list) Application requirements

    requirements = pyrebase4,sqlite3,matplotlib,matplotlib.pyplot,python3,kivy==2.0.0,kivymd==0.104.1,mapview,geocoder,email-validator,requests==2.29.0,urllib3==1.21.1,chardet,idna,ratelim,decorator,click,dnspython,pillow,python-jwt==2.0.1,oauth2client==4.1.2,httplib2,pyparsing,pyasn1,pyasn1_modules,virtualenv,six,sh,rsa,requests-toolbelt==0.7.1,python-jwt,pygments,pycryptodome==3.6.4,ptyprocess,protobuf,platformdirs,pexpect,kivy-garden.mapview,kivy-garden,jws,googleapis-common-protos,gcloud==0.18.3,future,filelock,docutils,distlib,backports.entry-points-selectable,jwcrypto,cryptography,Deprecated,wrapt
    garden_requirements = graph,matplotlib,matplotlib.pyplot

    (str) Custom source folders for requirements

    Sets custom source for any requirements with recipes

    requirements.source.kivy = ../../kivy

    (str) Presplash of the application

    #presplash.filename = %(source.dir)s/data/presplash.png

    (str) Icon of the application

    #icon.filename = %(source.dir)s/data/icon.png

    (list) Supported orientations

    Valid options are: landscape, portrait, portrait-reverse or landscape-reverse

    orientation = portrait

    (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.9.1

    Android specific

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

    fullscreen = 0

    (string) Presplash background color (for android toolchain)

    Supported formats are: #RRGGBB #AARRGGBB or one of the following names:

    red, blue, green, black, white, gray, cyan, magenta, yellow, lightgray,

    darkgray, grey, lightgrey, darkgrey, aqua, fuchsia, lime, maroon, navy,

    olive, purple, silver, teal.

    #android.presplash_color = #FFFFFF

    (string) Presplash animation using Lottie format.

    see https://lottiefiles.com/ for examples and https://airbnb.design/lottie/

    for general documentation.

    Lottie files can be created using various tools, like Adobe After Effect or Synfig.

    #android.presplash_lottie = "path/to/lottie/file.json"

    (str) Adaptive icon of the application (used if Android API level is 26+ at runtime)

    #icon.adaptive_foreground.filename = %(source.dir)s/data/icon_fg.png
    #icon.adaptive_background.filename = %(source.dir)s/data/icon_bg.png

    (list) Permissions

    (See https://python-for-android.readthedocs.io/en/latest/buildoptions/#build-options-1 for all the supported syntaxes and properties)

    android.permissions = INTERNET, WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE

    (list) features (adds uses-feature -tags to manifest)

    #android.features = android.hardware.usb.host

    (int) Target Android API, should be as high as possible.

    #android.api = 31

    (int) Minimum API your APK / AAB will support.

    #android.minapi = 21

    (int) Android SDK version to use

    #android.sdk = 20

    (str) Android NDK version to use

    #android.ndk = 23b

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

    #android.ndk_api = 21

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

    (str) Full name including package path of the Java class that implements Android Activity

    use that parameter together with android.entrypoint to set custom Java class instead of PythonActivity

    #android.activity_class_name = org.kivy.android.PythonActivity

    (str) Extra xml to write directly inside the element of AndroidManifest.xml

    use that parameter to provide a filename from where to load your custom XML code

    #android.extra_manifest_xml = ./src/android/extra_manifest.xml

    (str) Extra xml to write directly inside the tag of AndroidManifest.xml

    use that parameter to provide a filename from where to load your custom XML arguments:

    #android.extra_manifest_application_arguments = ./src/android/extra_manifest_application_arguments.xml

    (str) Full name including package path of the Java class that implements Python Service

    use that parameter to set custom Java class which extends PythonService

    #android.service_class_name = org.kivy.android.PythonService

    (str) Android app theme, default is ok for Kivy-based 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

    #android.add_aars =

    (list) Put these files or directories in the apk assets directory.

    Either form may be used, and assets need not be in 'source.include_exts'.

    1) android.add_assets = source_asset_relative_path

    2) android.add_assets = source_asset_path:destination_asset_relative_path

    #android.add_assets =

    (list) Put these files or directories in the apk res directory.

    The option may be used in three ways, the value may contain one or zero ':'

    Some examples:

    1) A file to add to resources, legal resource names contain ['a-z','0-9','_']

    android.add_resources = my_icons/all-inclusive.png:drawable/all_inclusive.png

    2) A directory, here 'legal_icons' must contain resources of one kind

    android.add_resources = legal_icons:drawable

    3) A directory, here 'legal_resources' must contain one or more directories,

    each of a resource kind: drawable, xml, etc...

    android.add_resources = legal_resources

    #android.add_resources =

    (list) Gradle dependencies to add

    #android.gradle_dependencies =

    (bool) Enable AndroidX support. Enable when 'android.gradle_dependencies'

    contains an 'androidx' package, or any package from Kotlin source.

    android.enable_androidx requires android.api >= 28

    #android.enable_androidx = True

    (list) add java compile 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_packaging_options =

    (list) Java classes to add as activities to the manifest.

    #android.add_activities = com.example.ExampleActivity

    (str) OUYA Console category. Should be one of GAME or 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 =

    (list) Copy these files to src/main/res/xml/ (used for example with intent-filters)

    #android.res_xml = PATH_TO_FILE,

    (str) launchMode to set for the main activity

    #android.manifest.launch_mode = standard

    (str) screenOrientation to set for the main activity.

    Valid values can be found at https://developer.android.com/guide/topics/manifest/activity-element

    #android.manifest.orientation = fullSensor

    (list) Android additional libraries to copy into libs/armeabi

    #android.add_libs_armeabi = libs/android/.so
    #android.add_libs_armeabi_v7a = libs/android-v7/
    .so
    #android.add_libs_arm64_v8a = libs/android-v8/.so
    #android.add_libs_x86 = libs/android-x86/
    .so
    #android.add_libs_mips = libs/android-mips/*.so

    (bool) Indicate whether the screen should stay 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) Android logcat only display log for activity's pid

    #android.logcat_pid_only = False

    (str) Android additional adb arguments

    #android.adb_args = -H host.docker.internal

    (bool) Copy library instead of making a libpymodules.so

    #android.copy_libs = 1

    (list) The Android archs to build for, choices: armeabi-v7a, arm64-v8a, x86, x86_64

    In past, was android.arch as we weren't supporting builds for multiple archs at the same time.

    android.archs = arm64-v8a, 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

    (bool) enables Android auto backup feature (Android API >=23)

    android.allow_backup = True

    (str) XML file for custom backup rules (see official auto backup documentation)

    android.backup_rules =

    (str) If you need to insert variables into your AndroidManifest.xml file,

    you can do so with the manifestPlaceholders property.

    This property takes a map of key-value pairs. (via a string)

    Usage example : android.manifest_placeholders = [myCustomUrl:"org.kivy.customurl"]

    android.manifest_placeholders = [:]

    (bool) Skip byte compile for .py files

    android.no-byte-compile-python = False

    (str) The format used to package the app for release mode (aab or apk or aar).

    android.release_artifact = aab

    (str) The format used to package the app for debug mode (apk or aar).

    android.debug_artifact = apk

    Python for android (p4a) specific

    (str) python-for-android URL to use for checkout

    #p4a.url =

    (str) python-for-android fork to use in case if p4a.url is not specified, defaults to upstream (kivy)

    #p4a.fork = kivy

    (str) python-for-android branch to use, defaults to master

    #p4a.branch = master

    (str) python-for-android specific commit to use, defaults to HEAD, must be within p4a.branch

    #p4a.commit = HEAD

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

    Control passing the --use-setup-py vs --ignore-setup-py to p4a

    "in the future" --use-setup-py is going to be the default behaviour in p4a, right now it is not

    Setting this to false will pass --ignore-setup-py, true will pass --use-setup-py

    NOTE: this is general setuptools integration, having pyproject.toml is enough, no need to generate

    setup.py if you're using Poetry, but you need to add "toml" to source.include_exts.

    #p4a.setup_py = false

    (str) extra command line arguments to pass when invoking pythonforandroid.toolchain

    #p4a.extra_args =

    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.10.0

    (bool) Whether or not to sign the code

    ios.codesign.allowed = false

    (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) The development team to use for signing the debug version

    #ios.codesign.development_team.debug =

    (str) Name of the certificate to use for signing the release version

    #ios.codesign.release = %(ios.codesign.debug)s

    (str) The development team to use for signing the release version

    #ios.codesign.development_team.release =

    (str) URL pointing to .ipa file to be installed

    This option should be defined along with display_image_url and full_size_image_url options.

    #ios.manifest.app_url =

    (str) URL pointing to an icon (57x57px) to be displayed during download

    This option should be defined along with app_url and full_size_image_url options.

    #ios.manifest.display_image_url =

    (str) URL pointing to a large icon (512x512px) to be used by iTunes

    This option should be defined along with app_url and display_image_url options.

    #ios.manifest.full_size_image_url =

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

    librerías:
    import sqlite3
    import matplotlib.pyplot as plt
    from kivy.app import App
    from kivy.uix.boxlayout import BoxLayout
    from pipkivy.uix.label import Label
    from kivy.uix.button import Button
    from kivy.uix.textinput import TextInput
    from kivy.uix.gridlayout import GridLayout
    from kivy.uix.scrollview import ScrollView
    from kivy.uix.image import Image
    from kivy.uix.popup import Popup
    import pyrebase

  25. Zeikov commented on Sep 30, 2023

    @Zeikov

    no solution right ?

  26. cristianmejiaarias commented on Sep 30, 2023

    @cristianmejiaarias
  27. Zeikov commented on Oct 4, 2023

    @Zeikov

    When do you have issueWhen you run the apk or when you are packaging the app??Sent from my iPhoneOn Sep 29, 2023, at 10:42 PM, Zeikov @.> wrote: no solution right ? —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.>

    just when i run the apk

  28. Siam-Rayhan1 commented on Nov 10, 2023

    @Siam-Rayhan1

    This is my

    requirements = python3==3.9.7,hostpython3==3.9.7,kivy,kivymd,pillow,certifi,pyrebase,urllib3,oauth2client,httplib2, pyasn1, pyasn1-modules, rsa, six
    

    The errors I'm getting is

    ModuleNotFoundError: No module named 'pyparsing'
    
    

    Check this out. And help me anyways

    Screenshot_2023-11-11-01-34-20-130_com.android.chrome.jpg

  29. cristianmejiaarias commented on Nov 10, 2023

    @cristianmejiaarias
  30. Siam-Rayhan1 commented on Nov 11, 2023

    @Siam-Rayhan1

    try it

    requirements = python3==3.9.7,hostpython3==3.9.7,kivy,kivymd,certifi,pyrebase,urllib3,oauth2client,httplib2,
    pyasn1, pyasn1-modules, rsa, six, pyparsing, protobuf_cpp, python-jwt,
    pycryptodome, sdl2_ttf == 2.0.15, pillow

    let me know if it working for you

    El vie, 10 nov 2023 a las 13:55, Siam Rayhan @.***>)
    escribió:

    This is my

    requirements = python3==3.9.7,hostpython3==3.9.7,kivy,kivymd,pillow,certifi,pyrebase,urllib3,oauth2client,httplib2, pyasn1, pyasn1-modules, rsa, six

    The errors I'm getting is

    ModuleNotFoundError: No module named 'pyparsing'

    Check this out. And help me anyways

    [image: Screenshot_2023-11-11-01-34-20-130_com.android.chrome.jpg]
    https://user-images.githubusercontent.com/138190908/282166877-59eeac03-0e83-40e7-aedc-3f82d5a2adab.jpg

    —
    Reply to this email directly, view it on GitHub
    #344 (comment),
    or unsubscribe
    https://github.com/notifications/unsubscribe-auth/AKSUXXSFHZJYQI4JXUARJ63YD2BDPAVCNFSM4MZN573KU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOBQGYZTKNJXGEYQ
    .
    You are receiving this because you commented.Message ID:
    @.***>

    I got this error

    line 6, in <module> 
    I/python ( 7869): File "/github/workspace/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/google/protobuf/descriptor.py", line 47, in <module> 
    I/python ( 7869): ImportError: dlopen failed: cannot locate symbol "__aarch64_ldadd8_relax" referenced by "/data/app/~~_WglylXSqv5T2XOQTUBloQ==/org.test.myapp--h64t4wm8-LCB6O83LFzbQ==/lib/arm64/libprotobuf.so"... 
    I/python ( 7869): Python for android ended. D/
    
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions