Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MACOS] Android app crashes on start when using macos to build #2519

Closed
ChihayaK opened this issue Nov 12, 2021 · 24 comments
Closed

[MACOS] Android app crashes on start when using macos to build #2519

ChihayaK opened this issue Nov 12, 2021 · 24 comments
Assignees

Comments

@ChihayaK
Copy link

Software Versions

  • Python: 3.9
  • OS: MACOS 11.6 Big Sur(intel) / MACOS 12 monterey(apple silicon using rosetta 2)
  • Kivy: 2.0.0
  • Kivy installation method: pipenv

Describe the bug
When trying to build the android app using macos. The app can be successfuly built. However the app it self will crash on start with the following log.

Logs before crahses

11-12 18:21:21.437 13551 13598 I python  : Initializing Python for Android
11-12 18:21:21.437 13551 13598 I python  : Setting additional env vars from p4a_env_vars.txt
11-12 18:21:21.437 13551 13598 I python  : Changing directory to the one provided by ANDROID_ARGUMENT
11-12 18:21:21.437 13551 13598 I python  : /data/user/0/org.test.myapp/files/app
11-12 18:21:21.437 13551 13598 I python  : Preparing to initialize python
11-12 18:21:21.437 13551 13598 I python  : _python_bundle dir exists
11-12 18:21:21.437 13551 13598 I python  : calculated paths to be...
11-12 18:21:21.437 13551 13598 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-12 18:21:21.437 13551 13598 I python  : set wchar paths...
11-12 18:25:26.626  5157  5157 I AndroidRuntime: VM exiting with result code 0, cleanup skipped.

However, the same code can be built perfectly well on Ubuntu 20.04 LTS. With no problems.

I noticed this issue when upgrading to the big sur six months ago. The app builds perfectly fine on Catalina and works on Big Sur initially. One day, I decided to run "buildozer android clean" and this problem occurred. I was getting errors on zbarlight when I was building the app (but I eventually got rid of the build error error by doing some hacky patch, error log attached below), so I suspect this issue is somewhat related to the libzbar and zbarlight.

Zbarlight error

src/zbarlight/_zbarlight.c:111:32: error: too few arguments to function call,
      expected 3, have 2
    zbar_version(&major, &minor);
    ~~~~~~~~~~~~               ^
/usr/local/opt/zbar/include/zbar.h:270:1: note: 'zbar_version' declared here
extern int zbar_version(unsigned *major,
^
1 error generated.

Expected behavior
The android app runs without crash.

To Reproduce
I had successfuly created a demo that can reproducce the behavior. I will attach the code in the code&log section.

Code and Logs and screenshots

File structure

project
│   buildozer.spec
│   main.py
│   Pipfile

main.py

import kivy
kivy.require('2.0.0')

from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.gridlayout import GridLayout
from kivy.app import App
from kivy.properties import ObjectProperty, StringProperty
from kivy.uix.button import Button
from kivy.uix.bubble import Bubble

KV = '''
Controller:
    label_wid: my_custom_label
    info: 'Hello world'

    BoxLayout:
        orientation: 'horizontal'
        padding: 20

        Button:
            text: 'My controller info is: ' + root.info
            on_press: root.do_action()

        Label:
            id: my_custom_label
            text: 'My label before button press'
'''

class Controller(FloatLayout):
    # label_wid = ObjectProperty()
    info = StringProperty()
    isShow = True
    def do_action(self, label):
        if(self.isShow):
            self.ids.box.remove_widget(label)
            self.isShow = False
        else:
            self.ids.box.add_widget(label)
            self.isShow = True
        # label.text = 'test label'
        # self.label_wid.text = 'My label after button press'
        self.info = 'New info text'



class ControllerApp(App):
    def build(self):
        layout = Bubble()
        layout.add_widget(Button(text='Hello 1'))
        layout.add_widget(Button(text='World 1'))
        # layout.add_widget(Button(text='aaa', size_hint_x=None, width=300))
        # layout.add_widget(Button(text='World 2'))
        # layout.add_widget(Button(text='World 2'))
        # layout.add_widget(Button(text='World 2'))
        # layout.add_widget(Button(text='World 2'))
        # layout.add_widget(Button(text='World 2'))
        # layout.add_widget(Button(text='World 2'))
        # layout.add_widget(Button(text='World 2'))
        return layout
        # return Controller(info='Hello world')
        # return Builder.load_string(KV)


if __name__ == '__main__':
    ControllerApp().run()

Pipfile

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
kivy = "*"
cython = "*"
kivymd = "==0.104.2"
buildozer = "*"
zbarlight = "*"

[dev-packages]

[requires]
python_version = "3.9"

buildozer.spec

[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, venv

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

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

# (str) Application versioning (method 2)
# version.regex = __version__ = ['"](.*)['"]
# version.filename = %(source.dir)s/main.py

# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3,kivy,kivymd, libzbar, zbarlight

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

# (str) Supported orientation (one of landscape, sensorLandscape, portrait or all)
orientation = portrait

# (list) List of service to declare
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY

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

# (list) Permissions
#android.permissions = INTERNET

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

# (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
#android.add_aars =

# (list) Gradle dependencies to add
#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_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 <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_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 <uses-library> 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 = arm64-v8a

# (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 = [:]

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

# 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


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

@misl6
Copy link
Member

misl6 commented Nov 13, 2021

This issue is probably more related to python-for-android or buildozer.
I Will wait to transfer the issue to the right repository after some further investigation that requires additional logs from your side.

Can you please share a full log? Feel free to ask for help on our support chat.

@ChihayaK
Copy link
Author

Thanks for the reply. I am more than happy to provide the full log. Which log do you want?
The log for building the application on macOS?

@misl6
Copy link
Member

misl6 commented Nov 13, 2021

I'm sorry, I missed to specify it, the one generated on the Android device, during runtime.

@ChihayaK
Copy link
Author

ChihayaK commented Nov 13, 2021

Here you go. The log is so big that I can not put the log directly in this comment.
https://gist.github.com/ChihayaK/00010ce0529aeb16f64fdbbba8f6eb73

The application started around line 90.

@misl6 misl6 transferred this issue from kivy/kivy Nov 13, 2021
@jhay06
Copy link

jhay06 commented Dec 6, 2021

Hi how did you manage to run this on mac os with apple silicon in rosetta ? when i try to run this i always get an error related with binascii , same error persist using both buildozer and p4a command. sometimes error is related on the posixmodule.o

There's no problem in building apk using linux environment virtually but it is too slow running a linux x86_64 in mac os with apple silicon,

@jhay06
Copy link

jhay06 commented Dec 6, 2021

image
please see image

@ChihayaK
Copy link
Author

ChihayaK commented Dec 14, 2021

Hi how did you manage to run this on mac os with apple silicon in rosetta ? when i try to run this i always get an error related with binascii , same error persist using both buildozer and p4a command. sometimes error is related on the posixmodule.o

@jhay06

Sorry for the late reply, which part did you encouter a problem? Do you mean you don't know how to build the app using rosetta environment? Are you currently using the x86_64 arch to build the app or using the arm arch? To my knowledge kivy does not support native arm64 on macos yet.

@misl6 misl6 self-assigned this Jul 14, 2022
@misl6
Copy link
Member

misl6 commented Sep 1, 2022

@ChihayaK is that issue solved for you on the latest develop branch of python-for-android?

@ChihayaK
Copy link
Author

ChihayaK commented Sep 2, 2022

Sorry for the late reply, it seems that now I can not build the app using the latest develop branch because this error:
error: 'HAVE_UTIMENSAT_RUNTIME' undeclared (first use in this function); did you mean 'HAVE_FACCESSAT_RUNTIME'?
I am not sure what happened here. I guess there is something wrong with my gcc, but I am not sure. In short, the hostpython3 does not build right now, using the Rosetta 2 translation. And the native build seems to hang at the beginning.

@misl6
Copy link
Member

misl6 commented Sep 3, 2022

Rosetta is not needed anymore on latest buildozer and python-for-android.
Can you try to update buildozer + python-for-android (via the buildozer.spec) and use ndk=25 ?

(You'll need to clean your .buildozer folder)

@ChihayaK
Copy link
Author

ChihayaK commented Sep 3, 2022

Rosetta is not needed anymore on latest buildozer and python-for-android. Can you try to update buildozer + python-for-android (via the buildozer.spec) and use ndk=25 ?

(You'll need to clean your .buildozer folder)

I tried the ndk 25. It did not worked and stuck at Cwd ...../python-for-android

@misl6
Copy link
Member

misl6 commented Sep 3, 2022

Rosetta is not needed anymore on latest buildozer and python-for-android. Can you try to update buildozer + python-for-android (via the buildozer.spec) and use ndk=25 ?
(You'll need to clean your .buildozer folder)

I tried the ndk 25. It did not worked and stuck at Cwd ...../python-for-android

That looks like a network error. buildozer distclean may help here.

@ChihayaK
Copy link
Author

ChihayaK commented Sep 3, 2022

That looks like a network error. buildozer distclean may help here.

I tried the buildozer distclean and it still stuck at the same place. I believe this is not a network error since using the x86 mode will not stop at this cwd command. I am guessing that some binaries are not universal and the native build does not continue because it is not able to run some of them.

@misl6
Copy link
Member

misl6 commented Sep 3, 2022

That looks like a network error. buildozer distclean may help here.

I tried the buildozer distclean and it still stuck at the same place. I believe this is not a network error since using the x86 mode will not stop at this cwd command. I am guessing that some binaries are not universal and the native build does not continue because it is not able to run some of them.

Can you post the full log?

@ChihayaK
Copy link
Author

ChihayaK commented Sep 3, 2022

(kivy-test) ➜  kivy-test buildozer android debug
# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Read available permissions from api-versions.xml
# Preparing build
# Check requirements for android
# Run 'dpkg --version'
# Cwd None
/bin/sh: dpkg: command not found
# Search for Git (git)
#  -> found at /usr/bin/git
# Search for Cython (cython)
#  -> found at /Users/username/.local/share/virtualenvs/kivy-test-ry7Rc_ms/bin/cython
# Search for Java compiler (javac)
#  -> found at /opt/homebrew/Cellar/openjdk/18.0.1.1/libexec/openjdk.jdk/Contents/Home/bin/javac
# Search for Java keytool (keytool)
#  -> found at /opt/homebrew/Cellar/openjdk/18.0.1.1/libexec/openjdk.jdk/Contents/Home/bin/keytool
# Install platform
# Run 'git config --get remote.origin.url'
# Cwd /Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/python-for-android
https://github.com/kivy/python-for-android.git
# Run 'git branch -vv'
# Cwd /Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/python-for-android
* develop 5e2d44f8 [origin/develop] Use p4a_install instead of install, as a file named INSTALL is already present. (#2663)
# Run '/Users/username/.local/share/virtualenvs/kivy-test-ry7Rc_ms/bin/python -m pip install -q  \'appdirs\' \'colorama>=0.3.3\' \'jinja2\' \'sh>=1.10; sys_platform!="nt"\' \'pep517<0.7.0\' \'toml\''
# Cwd None
# Apache ANT found at /Users/username/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK found at /Users/username/.buildozer/android/platform/android-sdk
# Recommended android's NDK version by p4a is: 23b
# Android NDK found at /Users/username/.buildozer/android/platform/android-ndk-r25
# Read available permissions from api-versions.xml
# Run '/Users/username/.local/share/virtualenvs/kivy-test-ry7Rc_ms/bin/python -m pythonforandroid.toolchain aab -h --color=always --storage-dir="/Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/build-arm64-v8a" --ndk-api=25 --ignore-setup-py --debug'
# Cwd /Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/python-for-android

@misl6
Copy link
Member

misl6 commented Sep 3, 2022

Can you try to manually run: /Users/username/.local/share/virtualenvs/kivy-test-ry7Rc_ms/bin/python -m pythonforandroid.toolchain aab -h --color=always --storage-dir="/Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/build-arm64-v8a" --ndk-api=25 --ignore-setup-py --debug ?

@ChihayaK
Copy link
Author

ChihayaK commented Sep 3, 2022

So it gives me this error:
/Users/username/.local/share/virtualenvs/kivy-test-ry7Rc_ms/bin/python: Error while finding module specification for 'pythonforandroid.toolchain' (ModuleNotFoundError: No module named 'pythonforandroid')

And looking though the logs I dont think it starts any virtualenv stuff. Maybe I should try to install pythonforandroid?

@misl6
Copy link
Member

misl6 commented Sep 3, 2022

Can you try to use the latest master version of buildozer? (Might be related to kivy/buildozer#1493)

@ChihayaK
Copy link
Author

ChihayaK commented Sep 3, 2022

And do the pip install python-for-android seems fixed the problem.

Opps, not yet. That command runs, but it still stuck at cwd.

@ChihayaK
Copy link
Author

ChihayaK commented Sep 3, 2022

Can you try to use the latest master version of buildozer? (Might be related to kivy/buildozer#1493)

Yes! This fixed the cwd issue! Trying to reproduce my original issue right now.

@ChihayaK
Copy link
Author

ChihayaK commented Sep 3, 2022

And I run it to this problem:

[INFO]:    Building setuptools for arm64-v8a
[INFO]:    setuptools apparently isn't already in site-packages
[INFO]:    Installing setuptools into site-packages
[INFO]:    -> directory context /Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/build-arm64-v8a/build/other_builds/setuptools/arm64-v8a__ndk_target_21/setuptools
[DEBUG]:   -> running python3 setup.py install -O2 --root=/Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/build-arm64-v8a/build/python-installs/myapp/arm64-v8a --install-lib=.
[DEBUG]:        Traceback (most recent call last):
[DEBUG]:          File "/Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/build-arm64-v8a/build/other_builds/setuptools/arm64-v8a__ndk_target_21/setuptools/setup.py", line 7, in <module>
[DEBUG]:            import setuptools
[DEBUG]:          File "/Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/build-arm64-v8a/build/other_builds/setuptools/arm64-v8a__ndk_target_21/setuptools/setuptools/__init__.py", line 16, in <module>
[DEBUG]:            import setuptools.version
[DEBUG]:          File "/Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/build-arm64-v8a/build/other_builds/setuptools/arm64-v8a__ndk_target_21/setuptools/setuptools/version.py", line 1, in <module>
[DEBUG]:            import pkg_resources
[DEBUG]:          File "/Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/build-arm64-v8a/build/other_builds/setuptools/arm64-v8a__ndk_target_21/setuptools/pkg_resources/__init__.py", line 23, in <module>
[DEBUG]:            import zipfile
[DEBUG]:          File "/Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/build-arm64-v8a/build/other_builds/hostpython3/desktop/hostpython3/Lib/zipfile.py", line 6, in <module>
[DEBUG]:            import binascii
[DEBUG]:        ImportError: dlopen(/Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/build-arm64-v8a/build/other_builds/hostpython3/desktop/hostpython3/native-build/build/lib.macosx-12.5-x86_64-3.9/binascii.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace (_crc32)

And not sure if this is relevant to this problem:

/Users/username/PycharmProjects/kivy-test/.buildozer/android/platform/build-arm64-v8a/build/other_builds/hostpython3/desktop/hostpython3/native-build/build/lib.macosx-12.5-x86_64-3.9/binascii.cpython-39-darwin.so: Mach-O 64-bit bundle x86_64

@misl6
Copy link
Member

misl6 commented Sep 4, 2022

Did you cleaned the .buildozer folder after switching to a non-rosetta terminal?

@ChihayaK
Copy link
Author

ChihayaK commented Sep 5, 2022

Can confirm that I removed the .buildozer folder.

@Julian-O
Copy link
Contributor

It seems tome the original issue was resolved, and the OP is now encountering a different one.

Closing as complete, but if the issue is still occuring, please let us know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants