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

Cannot build APK with buildozer #1817

Closed
jairoerazo opened this issue May 7, 2019 · 14 comments · Fixed by #1951
Closed

Cannot build APK with buildozer #1817

jairoerazo opened this issue May 7, 2019 · 14 comments · Fixed by #1951

Comments

@jairoerazo
Copy link

Versions

Python: 3.7.1
OS: MacOS Mojave 10.14.4

Description

I'm trying to build a simple kivy app with buildozer. I already tried rebuilding (deleting .buildozer folder then running buildozer -v android debug, reinstall buildozer via pip install buildozer, but I still encounter the same issue. I need help. The code of my app is here in branch Tests.

buildozer.spec

Command:

buidozer -v android debug

Spec file:


# (str) Title of your application
title = TestChess

# (str) Package name
package.name = testchess

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

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

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

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

[INFO]:    Will compile for the following archs: armeabi-v7a
[INFO]:    Found Android API target in $ANDROIDAPI: 27
[INFO]:    Available Android APIs are (27)
[INFO]:    Requested API target 27 is available, continuing.
[INFO]:    Found NDK dir in $ANDROIDNDK: /Users/jairoerazo/.buildozer/android/platform/android-ndk-r17c
[INFO]:    Found NDK revision 17.2.4988734
[INFO]:    Getting NDK API version (i.e. minimum supported API) from user argument
[INFO]:    Found virtualenv at /Applications/anaconda3/bin/virtualenv
[INFO]:    ccache is missing, the build will not be optimized in the future.
[INFO]:    Found the following toolchain versions: ['4.9']
[INFO]:    Picking the latest gcc toolchain, here 4.9
[INFO]:    No existing dists meet the given requirements!
[INFO]:    No dist exists that meets your requirements, so one will be built.
[INFO]:    Found a single valid recipe set: ['hostpython3', 'libffi', 'openssl', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'sqlite3', 'python3', 'sdl2', 'six', 'pyjnius', 'android', 'kivy']
[INFO]:    The selected bootstrap is sdl2
[INFO]:    # Creating dist with sdl2 bootstrap
[INFO]:    Dist will have name testchess and requirements (python3, kivy)
[INFO]:    Dist contains the following requirements as recipes: ['hostpython3', 'libffi', 'openssl', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'sqlite3', 'python3', 'sdl2', 'six', 'pyjnius', 'android', 'kivy']
[INFO]:    Dist will also contain modules () installed from pip
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Recipe build order is ['hostpython3', 'libffi', 'openssl', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'sqlite3', 'python3', 'sdl2', 'six', 'pyjnius', 'android', 'kivy']
[INFO]:    # Downloading recipes 
[INFO]:    Downloading hostpython3
[INFO]:    -> running mkdir -p /Users/jairoerazo/Ana...(and 78 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/packages/hostpython3
[INFO]:    -> running basename https://www.python.org...(and 34 more)
[INFO]:    hostpython3 download already cached, skipping                       
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Downloading libffi
[INFO]:    -> running mkdir -p /Users/jairoerazo/Ana...(and 73 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/packages/libffi
[INFO]:    -> running basename https://github.com/lib...(and 32 more)
[INFO]:    libffi download already cached, skipping                            
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Downloading openssl
[INFO]:    -> running mkdir -p /Users/jairoerazo/Ana...(and 74 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/packages/openssl
[INFO]:    -> running basename https://www.openssl.or...(and 29 more)
[INFO]:    openssl download already cached, skipping                           
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Downloading sdl2_image
[INFO]:    -> running mkdir -p /Users/jairoerazo/Ana...(and 77 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/packages/sdl2_image
[INFO]:    -> running basename https://www.libsdl.or...(and 52 more)
[INFO]:    sdl2_image download already cached, skipping                        
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Downloading sdl2_mixer
[INFO]:    -> running mkdir -p /Users/jairoerazo/Ana...(and 77 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/packages/sdl2_mixer
[INFO]:    -> running basename https://www.libsdl.or...(and 52 more)
[INFO]:    sdl2_mixer download already cached, skipping                        
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Downloading sdl2_ttf
[INFO]:    -> running mkdir -p /Users/jairoerazo/Ana...(and 75 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/packages/sdl2_ttf
[INFO]:    -> running basename https://www.libsdl.org...(and 48 more)
[INFO]:    sdl2_ttf download already cached, skipping                          
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Downloading sqlite3
[INFO]:    -> running mkdir -p /Users/jairoerazo/Ana...(and 74 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/packages/sqlite3
[INFO]:    -> running basename https://www.sqlite.org...(and 37 more)
[INFO]:    sqlite3 download already cached, skipping                           
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Downloading python3
[INFO]:    -> running mkdir -p /Users/jairoerazo/Ana...(and 74 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/packages/python3
[INFO]:    -> running basename https://www.python.org...(and 34 more)
[INFO]:    python3 download already cached, skipping                           
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Downloading sdl2
[INFO]:    -> running mkdir -p /Users/jairoerazo/Ana...(and 71 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/packages/sdl2
[INFO]:    -> running basename https://www.libsdl.org...(and 26 more)
[INFO]:    sdl2 download already cached, skipping                              
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Downloading six
[INFO]:    -> running mkdir -p /Users/jairoerazo/Ana...(and 70 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/packages/six
[INFO]:    -> running basename https://pypi.python.or...(and 40 more)
[INFO]:    six download already cached, skipping                               
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Downloading pyjnius
[INFO]:    -> running mkdir -p /Users/jairoerazo/Ana...(and 74 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/packages/pyjnius
[INFO]:    -> running basename https://github.com/kiv...(and 29 more)
[INFO]:    pyjnius download already cached, skipping                           
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Downloading android
[INFO]:    Skipping android download as no URL is set
[INFO]:    Downloading kivy
[INFO]:    -> running mkdir -p /Users/jairoerazo/Ana...(and 71 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/packages/kivy
[INFO]:    -> running basename https://github.com/kiv...(and 26 more)
[INFO]:    kivy download already cached, skipping                              
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    # Building all recipes for arch armeabi-v7a
[INFO]:    # Unpacking recipes
[INFO]:    Unpacking hostpython3 for armeabi-v7a
[INFO]:    -> running basename https://www.python.org...(and 34 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/other_builds/hostpython3/desktop
[INFO]:    hostpython3 is already unpacked, skipping
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Unpacking libffi for armeabi-v7a
[INFO]:    -> running basename https://github.com/lib...(and 32 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/other_builds/libffi/armeabi-v7a__ndk_target_21
[INFO]:    libffi is already unpacked, skipping
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Unpacking openssl for armeabi-v7a
[INFO]:    -> running basename https://www.openssl.or...(and 29 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/other_builds/openssl/armeabi-v7a__ndk_target_21
[INFO]:    openssl is already unpacked, skipping
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Unpacking sdl2_image for armeabi-v7a
[INFO]:    -> running basename https://www.libsdl.or...(and 52 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni
[INFO]:    sdl2_image is already unpacked, skipping
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Unpacking sdl2_mixer for armeabi-v7a
[INFO]:    -> running basename https://www.libsdl.or...(and 52 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni
[INFO]:    sdl2_mixer is already unpacked, skipping
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Unpacking sdl2_ttf for armeabi-v7a
[INFO]:    -> running basename https://www.libsdl.org...(and 48 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni
[INFO]:    sdl2_ttf is already unpacked, skipping
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Unpacking sqlite3 for armeabi-v7a
[INFO]:    -> running basename https://www.sqlite.org...(and 37 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/other_builds/sqlite3/armeabi-v7a__ndk_target_21
[INFO]:    sqlite3 is already unpacked, skipping
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Unpacking python3 for armeabi-v7a
[INFO]:    -> running basename https://www.python.org...(and 34 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/other_builds/python3-libffi-openssl-sqlite3/armeabi-v7a__ndk_target_21
[INFO]:    python3 is already unpacked, skipping
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Unpacking sdl2 for armeabi-v7a
[INFO]:    -> running basename https://www.libsdl.org...(and 26 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni
[INFO]:    sdl2 is already unpacked, skipping
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Unpacking six for armeabi-v7a
[INFO]:    -> running basename https://pypi.python.or...(and 40 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/other_builds/six-python3/armeabi-v7a__ndk_target_21
[INFO]:    six is already unpacked, skipping
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Unpacking pyjnius for armeabi-v7a
[INFO]:    -> running basename https://github.com/kiv...(and 29 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/other_builds/pyjnius-python3-sdl2/armeabi-v7a__ndk_target_21
[INFO]:    pyjnius is already unpacked, skipping
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    -> running rm -rf /Users/jairoerazo/Anaco...(and 130 more)
[INFO]:    -> running cp -a /Users/jairoerazo/Anacon...(and 258 more)
[INFO]:    Unpacking kivy for armeabi-v7a
[INFO]:    -> running basename https://github.com/kiv...(and 26 more)
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/other_builds/kivy-python3-sdl2/armeabi-v7a__ndk_target_21
[INFO]:    kivy is already unpacked, skipping
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    # Prebuilding recipes
[INFO]:    Prebuilding hostpython3 for armeabi-v7a
[INFO]:    hostpython3 has no prebuild_armeabi_v7a, skipping
[INFO]:    Prebuilding libffi for armeabi-v7a
[INFO]:    libffi has no prebuild_armeabi_v7a, skipping
[INFO]:    Applying patches for libffi[armeabi-v7a]
[INFO]:    libffi already patched, skipping
[INFO]:    Prebuilding openssl for armeabi-v7a
[INFO]:    openssl has no prebuild_armeabi_v7a, skipping
[INFO]:    Prebuilding sdl2_image for armeabi-v7a
[INFO]:    sdl2_image has no prebuild_armeabi_v7a, skipping
[INFO]:    Applying patches for sdl2_image[armeabi-v7a]
[INFO]:    sdl2_image already patched, skipping
[INFO]:    Prebuilding sdl2_mixer for armeabi-v7a
[INFO]:    sdl2_mixer has no prebuild_armeabi_v7a, skipping
[INFO]:    Applying patches for sdl2_mixer[armeabi-v7a]
[INFO]:    sdl2_mixer already patched, skipping
[INFO]:    Prebuilding sdl2_ttf for armeabi-v7a
[INFO]:    sdl2_ttf has no prebuild_armeabi_v7a, skipping
[INFO]:    Prebuilding sqlite3 for armeabi-v7a
[INFO]:    sqlite3 has no prebuild_armeabi_v7a, skipping
[INFO]:    Prebuilding python3 for armeabi-v7a
[INFO]:    python3 has no prebuild_armeabi_v7a, skipping
[INFO]:    Applying patches for python3[armeabi-v7a]
[INFO]:    python3 already patched, skipping
[INFO]:    Prebuilding sdl2 for armeabi-v7a
[INFO]:    sdl2 has no prebuild_armeabi_v7a, skipping
[INFO]:    Prebuilding six for armeabi-v7a
[INFO]:    six has no prebuild_armeabi_v7a, skipping
[INFO]:    Prebuilding pyjnius for armeabi-v7a
[INFO]:    pyjnius has no prebuild_armeabi_v7a, skipping
[INFO]:    Applying patches for pyjnius[armeabi-v7a]
[INFO]:    pyjnius already patched, skipping
[INFO]:    Prebuilding android for armeabi-v7a
[INFO]:    android has no prebuild_armeabi_v7a, skipping
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/other_builds/android-python3-sdl2/armeabi-v7a__ndk_target_21/android
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Prebuilding kivy for armeabi-v7a
[INFO]:    kivy has no prebuild_armeabi_v7a, skipping
[INFO]:    # Building recipes
[INFO]:    Building hostpython3 for armeabi-v7a
[INFO]:    Skipping hostpython3 (3.7.1) build, as it has already been completed
[INFO]:    Building libffi for armeabi-v7a
[INFO]:    libffi said it is already built, skipping
[INFO]:    Building openssl for armeabi-v7a
[INFO]:    openssl said it is already built, skipping
[INFO]:    Building sdl2_image for armeabi-v7a
[INFO]:    Building sdl2_mixer for armeabi-v7a
[INFO]:    Building sdl2_ttf for armeabi-v7a
[INFO]:    Building sqlite3 for armeabi-v7a
[INFO]:    sqlite3 said it is already built, skipping
[INFO]:    Building python3 for armeabi-v7a
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/other_builds/python3-libffi-openssl-sqlite3/armeabi-v7a__ndk_target_21/python3/android-build
[WARNING]: Doing some hacky stuff to link properly
[INFO]:    -> running cp /Users/jairoerazo/.buildoze...(and 90 more)
[INFO]:    -> running cp /Users/jairoerazo/.buildoze...(and 88 more)
[WARNING]: lld not found, linking without it. Consider installing lld if linker errors occur.
[INFO]:    Activating flags for sqlite3
[INFO]:    Activating flags for libffi
[INFO]:    Activating flags for openssl
[INFO]:    <- directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/python-for-android
[INFO]:    Building sdl2 for armeabi-v7a
[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni
[INFO]:    -> running ndk-build V=1
           working: make: *** [/Users/jairoerazo/AnacondaProj...(and 126 more) Exception in thread background thread for pid 87670:
Traceback (most recent call last):
  File "/Applications/anaconda3/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/Applications/anaconda3/lib/python3.7/threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "/Applications/anaconda3/lib/python3.7/site-packages/sh.py", line 1540, in wrap
    fn(*args, **kwargs)
  File "/Applications/anaconda3/lib/python3.7/site-packages/sh.py", line 2459, in background_thread
    handle_exit_code(exit_code)
  File "/Applications/anaconda3/lib/python3.7/site-packages/sh.py", line 2157, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/Applications/anaconda3/lib/python3.7/site-packages/sh.py", line 815, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_2: 

  RAN: /Users/jairoerazo/.buildozer/android/platform/android-ndk-r17c/ndk-build V=1

  STDOUT:
Android NDK: WARNING:/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/Android.mk:main: non-system libraries in linker flags: -lpython3.7m    

/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/obj/local/armeabi-v7a/libmain.so
/Users/jairoerazo/.buildozer/android/platform/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: python3.7m: no archive symbol table (run ranlib)
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:51: error: undefined reference to 'PyModule_Create2'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:158: error: undefined reference to 'Py_SetProgramName'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:164: error: undefined reference to 'PyImport_AppendInittab'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:197: error: undefined reference to 'Py_DecodeLocale'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:198: error: undefined reference to 'Py_SetPath'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:209: error: undefined reference to 'Py_Initialize'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:226: error: undefined reference to 'PyEval_InitThreads'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:232: error: undefined reference to 'PyRun_SimpleStringFlags'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:238: error: undefined reference to 'PyRun_SimpleStringFlags'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:244: error: undefined reference to 'PyRun_SimpleStringFlags'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:260: error: undefined reference to 'PyRun_SimpleStringFlags'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:370: error: undefined reference to 'PyRun_SimpleFileExFlags'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:373: error: undefined reference to 'PyErr_Occurred'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:375: error: undefined reference to 'PyErr_Print'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:376: error: undefined reference to 'PySys_GetObject'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:377: error: undefined reference to 'PyFile_WriteString'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:379: error: undefined reference to 'PyErr_Clear'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:406: error: undefined reference to 'Py_FinalizeEx'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:35: error: undefined reference to '_PyArg_ParseTuple_SizeT'
/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:0: error: undefined reference to '_Py_NoneStruct'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/bootstrap_builds/sdl2-python3/obj/local/armeabi-v7a/libmain.so] Error 1


  STDERR:

# Command failed: /Applications/anaconda3/bin/python -m pythonforandroid.toolchain create --dist_name=testchess --bootstrap=sdl2 --requirements=python3,kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir="/Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build" --ndk-api=21
# 
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2
@jairoerazo
Copy link
Author

I think the error is generated because the ld linker is not found:

[INFO]:    -> directory context /Users/jairoerazo/AnacondaProjects/testchess/.buildozer/android/platform/build/build/other_builds/python3-libffi-openssl-sqlite3/armeabi-v7a__ndk_target_21/python3/android-build
[WARNING]: Doing some hacky stuff to link properly
[INFO]:    -> running cp /Users/jairoerazo/.buildoze...(and 90 more)
[INFO]:    -> running cp /Users/jairoerazo/.buildoze...(and 88 more)
[WARNING]: lld not found, linking without it. Consider installing lld if linker errors occur.

How and where can I configure the path to ld linker (/usr/bin/ld)?

@jairoerazo
Copy link
Author

This warning:
[WARNING]: lld not found, linking without it. Consider installing lld if linker errors occur.
it was solved by installing llvm, but the error still exists. (error: python3.7m: no archive symbol table (run ranlib))

@one-quaker
Copy link

Have similar error http://dpaste.com/3R8NM0F

@one-quaker
Copy link

That error inside linux docker container (FROM ubuntu 18.04)

@AndreMiras
Copy link
Member

AndreMiras commented May 11, 2019

Wait what? The initial report from @jairoerazobotero isn't inside Docker to me, judging from the paths /Users/jairoerazo/. But if you have a reproduction in Docker that's interesting.
Could you share the complete debug info, e.g. the complete build command you used, the entire log and your buildozer.spec?
Edit:
Because our CI builds under Docker via https://github.com/kivy/python-for-android/blob/6f08f52/.travis.yml and last build was green https://travis-ci.org/kivy/python-for-android/builds/530902117

@iruriksl
Copy link

This warning:
[WARNING]: lld not found, linking without it. Consider installing lld if linker errors occur.
it was solved by installing llvm, but the error still exists. (error: python3.7m: no archive symbol table (run ranlib))

I have lld installed and this error line is removed from logs but further proceeding with same error.

I am looking for solution since 50 days but found nowhere.
If any one could guide me I would be more happy to fix it.

Attaching logs with spec file for reference.
kivy-python-4r-android-issue-logs.txt

buildozer.spec.txt

@Sirfanas
Copy link

Hi,
Here is the problem:

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

You have to uncomment the last line and said True:

android.accept_sdk_license = True

@iruriksl
Copy link

Hi,
Here is the problem:

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

You have to uncomment the last line and said True:

android.accept_sdk_license = True

I made the changes suggested by you but still the error is same.

PFA spec file and logs for reference and to figure out the exact problem and resolution as this issue is now more longer than 2 months.
Seeking the resolution die hard.

kivy_error_commnty_post_reply.txt

buildozer.spec.txt

@Sirfanas
Copy link

Sirfanas commented May 28, 2019

I'm sorry but I never use Mac...
The only think I can said is have you done the entire installation procedure for buildozer on MacOS ?
If yes then I don't know, maybe try Docker image ?
I'm working on Windows and I use this image, the only problem I had was because of a permission issue with Docker for Windows
If you have an issue here is the solution I found for me : kivy/buildozer#902

Hope it will fit you're requirements

@TheSin-
Copy link

TheSin- commented Aug 1, 2019

I'm also hitting this issue, I'm on macOS, but everything is run in a docker image that was NOT produced on a Mac so it should not in theory affect anything.

Is there no solution for this? I mean I could fire up a VM and run docker in the VM, but I'd love to be able to run this natively in native docker.

Is there a way to see the python build verbosely? I can tell you right now that is where the issue is as there are no build files at all in the python3-libffi-openssl-sqlite3/armeabi-v7a__ndk_target_21/python3/android-build directory. Which is why it can't link python3.7m it doesn't exist since that build must be bailing for some reason, but I can not see anything so I have no idea why.

@TheSin-
Copy link

TheSin- commented Aug 1, 2019

Okay I found the issue, on macOS, macOS typically doesn't have a case sensitive fs, and docker doesn't change that. in the hostpython3 build there is a dir Python, so when you build it, it can not build the binary python in the same dir as there is no diff, since the binary isn't built everything from there starts to fail.

somehow is created a python.exe, so for testing only (this isn't a solution) I moved the Python directory to Python.dir, and move python.exe to python and re ran Buildozer without cleaning first. And guess what ;) it worked!

So the question is could we check for python and if it's missing check if python.exe exists and use that instead in python_for_android cmd ?

Or it could just patch the hostpython3 build to move Python directory and patch all the make files to use the new location so it's not in the way during the build. We have had to do this a few times in fink.

right now it's ugly as hell but I'm doing, but would be nice if python_for_android could fix it internally instead.

make release
# Fix for case insensitive filesystems
if [ ! -f ../../../.buildozer/android/platform/build/build/other_builds/hostpython3/desktop/hostpython3/native-build/python ]; then
  mv ../../../.buildozer/android/platform/build/build/other_builds/hostpython3/desktop/hostpython3/native-build/Python ../../../.buildozer/android/platform/build/build/other_builds/hostpython3/desktop/hostpython3/native-build/Python.dir
  mv ../../../.buildozer/android/platform/build/build/other_builds/hostpython3/desktop/hostpython3/native-build/python.exe ../../../.buildozer/android/platform/build/build/other_builds/hostpython3/desktop/hostpython3/native-build/python
  rm -rf ../../../.buildozer/android/platform/build/build/other_builds/python3-libffi-openssl-sqlite3
  make release
fi

opacam added a commit to opacam/python-for-android that referenced this issue Aug 2, 2019
It turns out that the generated binary for MacOS is not `python`...its `python.exe`

See also: https://github.com/python/cpython/blob/3.7/README.rst#build-instructions

Closes: kivy#1817
Closes: kivy#1800
Closes: kivy#1682
Closes: kivy#1647
@GaspHard
Copy link

This warning:
[WARNING]: lld not found, linking without it. Consider installing lld if linker errors occur.
it was solved by installing llvm, but the error still exists. (error: python3.7m: no archive symbol table (run ranlib))

How did you install llvm? I tried with homebrew but when i try to link it, it refuses...

@TheSin-
Copy link

TheSin- commented May 24, 2020

I use fink, I just add a symlink from fink to brew to make everything happy

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

Successfully merging a pull request may close this issue.

7 participants