I am trying to build the Hello World Kivy app on the Buildozer vm. Everything runs fine until Ant tries to compile the files.
I have attached the full error log and buildozer.spec
kivy#kivyvm:~/Documents/TestKivy/src$ buildozer android_new debug
# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for android
# Run 'dpkg --version'
# Cwd None
Debian 'dpkg' package management program version 1.18.10 (amd64).
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
# Search for Git (git)
# -> found at /usr/bin/git
# Search for Cython (cython)
# -> found at /usr/local/bin/cython
# Search for Java compiler (javac)
# -> found at /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
# Search for Java keytool (keytool)
# -> found at /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/keytool
# Install platform
# Apache ANT found at /home/kivy/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK found at /home/kivy/.buildozer/android/platform/android-sdk-20
# Android NDK found at /home/kivy/.buildozer/android/platform/android-ndk-r9c
# Check application requirements
# Check garden requirements
# Compile platform
# Run 'python -m pythonforandroid.toolchain --color=always --storage-dir=/home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build create --dist_name=howdyworld --bootstrap=sdl2 --requirements=kivy --arch armeabi-v7a --copy-libs'
# Cwd /home/kivy/Documents/TestKivy/src/.buildozer/android/platform/python-for-android-master
[INFO]: Will compile for the following archs: armeabi-v7a
[INFO]: Found Android API target in $ANDROIDAPI
[INFO]: Available Android APIs are (19)
[INFO]: Requested API target 19 is available, continuing.
[INFO]: Found NDK dir in $ANDROIDNDK
[INFO]: Got NDK version from $ANDROIDNDKVER
[INFO]: Using Google NDK r9c
[INFO]: Found virtualenv at /usr/local/bin/virtualenv
[INFO]: ccache is missing, the build will not be optimized in the future.
[INFO]: Found the following toolchain versions: ['4.6', '4.8', 'clang3.3']
[INFO]: Picking the latest gcc toolchain, here 4.8
[WARNING]: Missing executable: autoconf is not installed
[WARNING]: Missing executable: automake is not installed
[WARNING]: Missing executable: libtoolize is not installed
[INFO]: Of the existing distributions, the following meet the given requirements:
[INFO]: howdyworld: includes recipes (hostpython2, sdl2_image, sdl2_mixer, sdl2_ttf, python2, sdl2, six, pyjnius, kivy), built for archs (armeabi-v7a)
[INFO]: howdyworld has compatible recipes, using this one
# Build the application #4
# Copy application source from /home/kivy/Documents/TestKivy/src
# Create directory /home/kivy/Documents/TestKivy/src/.buildozer/android/app
# Copy /home/kivy/Documents/TestKivy/src/main.py
# Package the application
# Run "python -m pythonforandroid.toolchain --color=always --storage-dir=/home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build apk --bootstrap=sdl2 --dist_name howdyworld --name 'Hello World' --version 0.1 --package test.app.howdyworld --android_api 19 --minsdk 9 --private /home/kivy/Documents/TestKivy/src/.buildozer/android/app --orientation landscape --copy-libs"
# Cwd /home/kivy/Documents/TestKivy/src/.buildozer/android/platform/python-for-android-master
[INFO]: Will compile for the following archs: armeabi
[INFO]: Getting Android API version from user argument
[INFO]: Available Android APIs are (19)
[INFO]: Requested API target 19 is available, continuing.
[INFO]: Found NDK dir in $ANDROIDNDK
[INFO]: Got NDK version from $ANDROIDNDKVER
[INFO]: Using Google NDK r9c
[INFO]: Found virtualenv at /usr/local/bin/virtualenv
[INFO]: ccache is missing, the build will not be optimized in the future.
[INFO]: Found the following toolchain versions: ['4.6', '4.8', 'clang3.3']
[INFO]: Picking the latest gcc toolchain, here 4.8
[WARNING]: Missing executable: autoconf is not installed
[WARNING]: Missing executable: automake is not installed
[WARNING]: Missing executable: libtoolize is not installed
[INFO]: Of the existing distributions, the following meet the given requirements:
[INFO]: howdyworld: includes recipes (hostpython2, sdl2_image, sdl2_mixer, sdl2_ttf, python2, sdl2, six, pyjnius, kivy), built for archs (armeabi-v7a)
[INFO]: howdyworld has compatible recipes, using this one
[INFO]: Of the existing distributions, the following meet the given requirements:
[INFO]: howdyworld: includes recipes (hostpython2, sdl2_image, sdl2_mixer, sdl2_ttf, python2, sdl2, six, pyjnius, kivy), built for archs (armeabi-v7a)
[INFO]: howdyworld has compatible recipes, using this one
[INFO]: -> directory context /home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build/dists/howdyworld
Listing /home/kivy/Documents/TestKivy/src/.buildozer/android/app ...
...
Compiling /home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build/dists/howdyworld/private/lib/python2.7/xml/sax/xmlreader.py ...
[INFO]: Selecting java build tool:
[INFO]: Detected highest available build tools version to be 23.0.1
[INFO]: Building with ant, as the highest build-tools-version is only 23.0.1
[INFO]: -> running ant debug
working: [javac] 3 warnings Exception in thread background thread for pid 2274:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 2170, in background_thread
handle_exit_code(exit_code)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 1929, in fn
return self.command.handle_command_exit_code(exit_code)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 672, in handle_command_exit_code
raise exc
ErrorReturnCode_1:
RAN: /home/kivy/.buildozer/android/platform/apache-ant-1.9.4/bin/ant debug
STDOUT:
Buildfile: /home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build/dists/howdyworld/build.xml
-set-mode-check:
-set-debug-files:
-check-env:
[checkenv] Android SDK Tools Revision 24.0.2
[checkenv] Installed at /home/kivy/.buildozer/android/platform/android-sdk-20
-setup:
[echo] Project Name: HelloWorld-0.1
[gettype] Project Type: Application
-set-debug-mode:
-debug-obfuscation-check:
-pre-build:
-build-setup:
[getbuildtools] Using latest Build Tools: 23.0.1
[echo] Resolving Build Target for HelloWorld-0.1...
[gettarget] Project Target: Android 4.4.2
[gettarget] API level: 19
[echo] ----------
[echo] Creating output directories if needed...
[mkdir] Created dir: /home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build/dists/howdyworld/bin/rsObj
[mkdir] Created dir: /home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build/dists/howdyworld/bin/rsLibs
[echo] ----------
[echo] Resolving Dependencies for HelloWorld-0.1...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency]
[dependency] ------------------
[echo] ----------
[echo] Building Libraries with 'debug'...
[subant] No sub-builds to iterate on
-code-gen:
[mergemanifest] Found modified input file
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
[echo] Handling aidl files...
[aidl] No AIDL files to compile.
[echo] ----------
[echo] Handling RenderScript files...
[echo] ----------
[echo] Handling Resources...
[aapt] Found modified input file
[aapt] Generating resource IDs...
[aapt] (skipping file '.gitkeep' due to ANDROID_AAPT_IGNORE pattern '.*')
[echo] ----------
[echo] Handling BuildConfig class...
[buildconfig] Generating BuildConfig class.
-pre-compile:
-compile:
[javac] Compiling 26 source files to /home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build/dists/howdyworld/bin/classes
[javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
[javac] /home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build/dists/howdyworld/tmp-src/org/kivy/android/PythonService.java:108: error: multi-catch statement is not supported in -source 1.5
[javac] } catch (NoSuchMethodException | IllegalAccessException |
[javac] ^
[javac] (use -source 7 or higher to enable multi-catch statement)
[javac] 1 error
[javac] 3 warnings
BUILD FAILED
/home/kivy/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:720: The following error occurred while executing this line:
/home/kivy/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:734: Compile failed; see the compiler error output for details.
Total time: 7 seconds
STDERR:
[INFO]: STDOUT (last 20 lines of 75):
-pre-compile:
-compile:
[javac] Compiling 26 source files to /home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build/dists/howdyworld/bin/classes
[javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
[javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
[javac] /home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build/dists/howdyworld/tmp-src/org/kivy/android/PythonService.java:108: error: multi-catch statement is not supported in -source 1.5
[javac] } catch (NoSuchMethodException | IllegalAccessException |
[javac] ^
[javac] (use -source 7 or higher to enable multi-catch statement)
[javac] 1 error
[javac] 3 warnings
BUILD FAILED
/home/kivy/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:720: The following error occurred while executing this line:
/home/kivy/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:734: Compile failed; see the compiler error output for details.
Total time: 7 seconds
[INFO]: STDERR:
[INFO]: COMMAND:
cd /home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build/dists/howdyworld && /home/kivy/.buildozer/android/platform/apache-ant-1.9.4/bin/ant debug
[WARNING]: ERROR: /home/kivy/.buildozer/android/platform/apache-ant-1.9.4/bin/ant failed!
# Command failed: python -m pythonforandroid.toolchain --color=always --storage-dir=/home/kivy/Documents/TestKivy/src/.buildozer/android/platform/build apk --bootstrap=sdl2 --dist_name howdyworld --name 'Hello World' --version 0.1 --package test.app.howdyworld --android_api 19 --minsdk 9 --private /home/kivy/Documents/TestKivy/src/.buildozer/android/app --orientation landscape --copy-libs
#
# 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
kivy#kivyvm:~/Documents/TestKivy/src$
Buildozer.spec:
[app]
# (str) Title of your application
title = Hello World
# (str) Package name
package.name = howdyworld
# (str) Package domain (needed for android/ios packaging)
package.domain = test.app
# (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 seperated e.g. requirements = sqlite3,kivy
requirements = 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, portrait or all)
orientation = landscape
# (list) List of service to declare
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY
#
# OSX Specific
#
#
# author = © Copyright Info
#
# Android specific
#
# (bool) Indicate if the application should be fullscreen or not
fullscreen = 1
# (list) Permissions
#android.permissions = INTERNET
# (int) Android API to use
#android.api = 19
# (int) Minimum API required
#android.minapi = 9
# (int) Android SDK version to use
#android.sdk = 20
# (str) Android NDK version to use
#android.ndk = 9c
# (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 =
# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
#android.p4a_dir =
# (list) python-for-android whitelist
#android.p4a_whitelist =
# (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
# (str) Android entry point, default is ok for Kivy-based app
#android.entrypoint = org.renpy.android.PythonActivity
# (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 =
# (str) python-for-android branch to use, if not master, useful to try
# not yet merged features.
#android.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 =
# (list) Android additionnal 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
#
# iOS specific
#
# (str) Path to a custom kivy-ios folder
#ios.kivy_ios_dir = ../kivy-ios
# (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
Any help with what may be causing this error or even how to see more of the Ant build error would be great.
I got same error but solved.
android-sdk-20/tools/ant/build.xml
android-sdk-20/tools/ant/uibuild.xml
<property name="java.target" value="1.5" />
<property name="java.source" value="1.5" />
to
<property name="java.target" value="1.7" />
<property name="java.source" value="1.7" />
Related
I am working on a kivy android app and while building the apk got the below error. The error is saying that opencv requires android sdk release version 14 or newer but when i check the version where i can find the sdk install path i can find it as 30.0.4. Below are the logs
STDOUT:
-- Looking for ccache - not found
-- OpenCV disables pkg-config to avoid using of host libraries. Consider using PKG_CONFIG_LIBDIR to specify target SYSROOT
-- libjpeg-turbo: VERSION = 1.5.3, BUILD = opencv-4.0.1-libjpeg-turbo
-- Android: fixup -g compiler option from Android toolchain
-- Update variable ANDROID_SDK from environment: /root/.buildozer/android/platform/android-sdk
CMake Error at cmake/android/OpenCVDetectAndroidSDK.cmake:176 (message):
Android SDK Tools: OpenCV requires Android SDK Tools revision 14 or newer.
Use BUILD_ANDROID_PROJECTS=OFF to prepare Android project files without
building them
Call Stack (most recent call first):
CMakeLists.txt:780 (include)
-- Configuring incomplete, errors occurred!
See also "/home/myapp/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/opencv/armeabi-v7a__ndk_target_21/opencv/build/CMakeFiles/CMakeOutput.log".
See also "/home/myapp/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/opencv/armeabi-v7a__ndk_target_21/opencv/build/CMakeFiles/CMakeError.log".
STDERR:
# Command failed: /usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=myapp --bootstrap=sdl2 --requirements=python3,kivy,numpy,python-opencv,matplotlib,datetime,opencv==master --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/myapp/.buildozer/android/platform/build-armeabi-v7a" --ndk-api=21
# ENVIRONMENT:
# HOSTNAME = '06dd908deae1'
# PWD = '/home/myapp'
# HOME = '/root'
# LS_COLORS = 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'
# LESSCLOSE = '/usr/bin/lesspipe %s %s'
# TERM = 'xterm'
# LESSOPEN = '| /usr/bin/lesspipe %s'
# SHLVL = '1'
# PATH = '/root/.buildozer/android/platform/apache-ant-1.9.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.local/bin/'
# OLDPWD = '/home'
# _ = '/root/.local/bin/buildozer'
# LC_CTYPE = 'C.UTF-8'
# PACKAGES_PATH = '/root/.buildozer/android/packages'
# ANDROIDSDK = '/root/.buildozer/android/platform/android-sdk'
# ANDROIDNDK = '/root/.buildozer/android/platform/android-ndk-r19c'
# ANDROIDAPI = '27'
# ANDROIDMINAPI = '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
I checked the sdk version under below path
/root/.buildozer/android/platform/android-sdk/platform-tools/source.properties
and it shows Pkg.UserSrc=false & Pkg.Revision=30.0.4
I have update the builozer.spec as below:
android.sdk = 30.0.4
# (str) Android NDK version to use
android.ndk = 19c
# (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 = /root/.buildozer/android/platform/android-sdk
Need help on how to fix this!!
I have an app that I'm trying to deploy and can't. Towards the beginning I get an 'ValueError: read of closed file' I don't know if this is related to openssl which is the step it's on when it crashes but if you understand this error I'd love some help. I'm not actually sure if anything is off on my buildozer.spec file as well... Thank you for your time.
Here is my buildozer.spec file:
[app]
# (str) Title of your application
title = TrackingMind
# (str) Package name
package.name = TrackerApp
# (str) Package domain (needed for android/ios packaging)
package.domain = org.TrackerApp
# (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,json
# (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 = 1.0
# (str) Application vValueError:ersioning (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,gmail,os,time,settingjson
# (str) Custom source folders for requirements
# Sets custom source for any requirements with recipes
# requirements.source.kivy = ../../kivy
# (list) Garden requirements
#garden_requirements =
# (str) Presplash of the application
#presplash.filename = %(source.dir)s/data/presplash.png
# (str) Icon of the application
#icon.filename = %(source.dir)s/data/icon.png
# (str) Supported orientation (one of landscape, sensorLandscape, portrait or all)
orientation = all
# (list) List of service to declare
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY
#
# OSX Specific
#
#
# author = © Copyright Info
# change the major version of python used by the app
osx.python_version = 3
# Kivy version to use
osx.kivy_version = 1.11.1
#
# Android specific
#
# (bool) Indicate if the application should be fullscreen or not
fullscreen = 0
# (string) Presplash background color (for new android toolchain)
# Supported formats are: #RRGGBB #AARRGGBB or one of the following names:
# red, blue, green, black, white, gray, cyan, magenta, yellow, lightgray,
# darkgray, grey, lightgrey, darkgrey, aqua, fuchsia, lime, maroon, navy,
# olive, purple, silver, teal.
#android.presplash_color = #FFFFFF
# (list) Permissions
android.permissions = INTERNET
# (int) Target Android API, should be as high as possible.
#android.api = 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 (currently works only with sdl2_gradle
# bootstrap)
#android.add_aars =
# (list) Gradle dependencies to add (currently works only with sdl2_gradle
# bootstrap)
#android.gradle_dependencies =
# (list) add java compile options
# this can for example be necessary when importing certain java libraries using the 'android.gradle_dependencies' option
# see https://developer.android.com/studio/write/java8-support for further information
# android.add_compile_options = "sourceCompatibility = 1.8", "targetCompatibility = 1.8"
# (list) Gradle repositories to add {can be necessary for some android.gradle_dependencies}
# please enclose in double quotes
# e.g. android.gradle_repositories = "maven { url 'https://kotlin.bintray.com/ktor' }"
#android.add_gradle_repositories =
# (list) packaging options to add
# see https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.html
# can be necessary to solve conflicts in gradle_dependencies
# please enclose in double quotes
# e.g. android.add_packaging_options = "exclude 'META-INF/common.kotlin_module'", "exclude 'META-INF/*.kotlin_module'"
#android.add_gradle_repositories =
# (list) Java classes to add as activities to the manifest.
#android.add_activities = com.example.ExampleActivity
# (str) OUYA Console category. Should be one of GAME or APP
# If you leave this blank, OUYA support will not be enabled
#android.ouya.category = GAME
# (str) Filename of OUYA Console icon. It must be a 732x412 png image.
#android.ouya.icon.filename = %(source.dir)s/data/ouya_icon.png
# (str) XML file to include as an intent filters in <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 = armeabi-v7a
#
# Python for android (p4a) specific
#
# (str) python-for-android fork to use, defaults to upstream (kivy)
#p4a.fork = kivy
# (str) python-for-android branch to use, defaults to master
#p4a.branch = master
# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
#p4a.source_dir =
# (str) The directory in which python-for-android should look for your own build recipes (if any)
#p4a.local_recipes =
# (str) Filename to the hook for p4a
#p4a.hook =
# (str) Bootstrap to use for android builds
# p4a.bootstrap = sdl2
# (int) port number to specify an explicit --port= p4a argument (eg for bootstrap flask)
#p4a.port =
#
# iOS specific
#
# (str) Path to a custom kivy-ios folder
#ios.kivy_ios_dir = ../kivy-ios
# Alternately, specify the URL and branch of a git checkout:
ios.kivy_ios_url = https://github.com/kivy/kivy-ios
ios.kivy_ios_branch = master
# Another platform dependency: ios-deploy
# Uncomment to use a custom checkout
#ios.ios_deploy_dir = ../ios_deploy
# Or specify URL and branch
ios.ios_deploy_url = https://github.com/phonegap/ios-deploy
ios.ios_deploy_branch = 1.7.0
# (str) Name of the certificate to use for signing the debug version
# Get a list of available identities: buildozer ios list_identities
#ios.codesign.debug = "iPhone Developer: <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
Terminal OUTPUT
davi#davi-M11x:~/Downloads/PESS$ buildozer android debug
# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for android
# Run 'dpkg --version'
# Cwd None
Debian 'dpkg' package management program version 1.19.0.5 (amd64).
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
# Search for Git (git)
# -> found at /usr/bin/git
# Search for Cython (cython)
# -> found at /usr/local/bin/cython
# Search for Java compiler (javac)
# -> found at /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
# Search for Java keytool (keytool)
# -> found at /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/keytool
# Install platform
# Run 'git config --get remote.origin.url'
# Cwd /home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android
https://github.com/kivy/python-for-android.git
# Run 'git branch -vv'
# Cwd /home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android
* master b1f6064d [origin/master] Release 2019.10.06 (#1998)
# Run '/usr/bin/python3 -m pip install -q --user \'appdirs\' \'colorama>=0.3.3\' \'jinja2\' \'six\' \'enum34; python_version<"3.4"\' \'sh>=1.10; sys_platform!="nt"\' \'pep517<0.7.0"\' \'pytoml\' \'virtualenv\''
# Cwd None
# Apache ANT found at /home/davi/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK found at /home/davi/.buildozer/android/platform/android-sdk
# Recommended android's NDK version by p4a is: 19b
# Android NDK found at /home/davi/.buildozer/android/platform/android-ndk-r19b
# Check application requirements
# Check garden requirements
# Compile platform
# Run '/usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=TrackerApp --bootstrap=sdl2 --requirements=python3,kivy,gmail,os,time,settingjson --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/davi/Downloads/PESS/.buildozer/android/platform/build-armeabi-v7a" --ndk-api=21'
# Cwd /home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android
[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: /home/davi/.buildozer/android/platform/android-ndk-r19b
[INFO]: Found NDK version 19b
[INFO]: Getting NDK API version (i.e. minimum supported API) from user argument
[INFO]: Found virtualenv at /usr/local/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: ['gmail', 'hostpython3', 'libffi', 'openssl', 'os', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'settingjson', 'sqlite3', 'time', 'python3', 'sdl2', 'setuptools', 'six', 'pyjnius', 'android', 'kivy']
[INFO]: The selected bootstrap is sdl2
[INFO]: # Creating dist with sdl2 bootstrap
[INFO]: Dist will have name TrackerApp and requirements (python3, kivy, gmail, os, time, settingjson)
[INFO]: Dist contains the following requirements as recipes: ['hostpython3', 'libffi', 'openssl', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'sqlite3', 'python3', 'sdl2', 'setuptools', 'six', 'pyjnius', 'android', 'kivy']
[INFO]: Dist will also contain modules (time, gmail, os, settingjson) installed from pip
[INFO]: -> directory context /home/davi/Downloads/PESS/.buildozer/android/platform/build-armeabi-v7a/build/bootstrap_builds/sdl2-python3
[INFO]: <- directory context /home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android
[INFO]: Recipe build order is ['hostpython3', 'libffi', 'openssl', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'sqlite3', 'python3', 'sdl2', 'setuptools', 'six', 'pyjnius', 'android', 'kivy']
[INFO]: The requirements (gmail, os, settingjson, time) were not found as recipes, they will be installed with pip.
[INFO]: # Downloading recipes
[INFO]: Downloading hostpython3
[INFO]: -> running mkdir -p /home/davi/Downloads/PESS/.buildozer/android/platform/build-armeabi-v7a/packages/hostpython3
[INFO]: -> directory context /home/davi/Downloads/PESS/.buildozer/android/platform/build-armeabi-v7a/packages/hostpython3
[INFO]: -> running basename https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
[INFO]: hostpython3 download already cached, skipping
[INFO]: <- directory context /home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android
[INFO]: Downloading libffi
[INFO]: -> running mkdir -p /home/davi/Downloads/PESS/.buildozer/android/platform/build-armeabi-v7a/packages/libffi
[INFO]: -> directory context /home/davi/Downloads/PESS/.buildozer/android/platform/build-armeabi-v7a/packages/libffi
[INFO]: -> running basename https://github.com/libffi/libffi/archive/8fa8837.tar.gz
[INFO]: libffi download already cached, skipping
[INFO]: <- directory context /home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android
[INFO]: Downloading openssl
[INFO]: -> running mkdir -p /home/davi/Downloads/PESS/.buildozer/android/platform/build-armeabi-v7a/packages/openssl
[INFO]: -> directory context /home/davi/Downloads/PESS/.buildozer/android/platform/build-armeabi-v7a/packages/openssl
[INFO]: -> running basename https://www.openssl.org/source/openssl-1.1.1.tar.gz
[INFO]: -> running rm openssl-1.1.1.tar.gz
[INFO]: -> running rm -f .mark-openssl-1.1.1.tar.gz
[INFO]: Downloading openssl from https://www.openssl.org/source/openssl-1.1.1.tar.gz
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 1196, in <module>
main()
File "/home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android/pythonforandroid/entrypoints.py", line 18, in main
ToolchainCL()
File "/home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 671, in __init__
getattr(self, args.subparser_name.replace('-', '_'))(args)
File "/home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 155, in wrapper_func
build_dist_from_args(ctx, dist, args)
File "/home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 209, in build_dist_from_args
args, "ignore_setup_py", False
File "/home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 558, in build_recipes
recipe.download_if_necessary()
File "/home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android/pythonforandroid/recipe.py", line 356, in download_if_necessary
self.download()
File "/home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android/pythonforandroid/recipe.py", line 402, in download
self.download_file(self.versioned_url, filename)
File "/home/davi/Downloads/PESS/.buildozer/android/platform/python-for-android/pythonforandroid/recipe.py", line 217, in download_file
urlretrieve(url, target, report_hook)
File "/usr/lib/python3.6/urllib/request.py", line 1819, in retrieve
block = fp.read(bs)
File "/usr/lib/python3.6/tempfile.py", line 624, in func_wrapper
return func(*args, **kwargs)
ValueError: read of closed file
# Command failed: /usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=TrackerApp --bootstrap=sdl2 --requirements=python3,kivy,gmail,os,time,settingjson --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/davi/Downloads/PESS/.buildozer/android/platform/build-armeabi-v7a" --ndk-api=21
# ENVIRONMENT:
# LS_COLORS = 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'
# LESSCLOSE = '/usr/bin/lesspipe %s %s'
# XDG_MENU_PREFIX = 'gnome-'
# LANG = 'en_US.UTF-8'
# GDM_LANG = 'en_US'
# PANTHEON_TERMINAL_ID = '2'
# DISPLAY = ':0'
# QT_STYLE_OVERRIDE = 'adwaita'
# OLDPWD = '/home/davi/Downloads'
# GTK_CSD = '1'
# COLORTERM = 'truecolor'
# XDG_VTNR = '7'
# GIO_LAUNCHED_DESKTOP_FILE_PID = '2542'
# GTK3_MODULES = 'pantheon-filechooser-module'
# SSH_AUTH_SOCK = '/run/user/1000/keyring/ssh'
# XDG_SESSION_ID = 'c2'
# XDG_GREETER_DATA_DIR = '/var/lib/lightdm-data/davi'
# USER = 'davi'
# DESKTOP_SESSION = 'pantheon'
# QT_QPA_PLATFORMTHEME = 'gtk3'
# PWD = '/home/davi/Downloads/PESS'
# HOME = '/home/davi'
# SSH_AGENT_PID = '1909'
# QT_ACCESSIBILITY = '1'
# XDG_SESSION_TYPE = 'x11'
# XDG_DATA_DIRS = '/usr/share/gnome:/usr/share/pantheon:/home/davi/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop'
# GSETTINGS_SCHEMA_DIR = '/home/davi/data'
# XDG_SESSION_DESKTOP = 'pantheon'
# GTK_MODULES = 'gail:atk-bridge'
# TERM = 'xterm-256color'
# SHELL = '/bin/bash'
# VTE_VERSION = '5202'
# XDG_SEAT_PATH = '/org/freedesktop/DisplayManager/Seat0'
# QT_IM_MODULE = 'ibus'
# XMODIFIERS = '#im=ibus'
# XDG_CURRENT_DESKTOP = 'Pantheon'
# GPG_AGENT_INFO = '/run/user/1000/gnupg/S.gpg-agent:0:1'
# GIO_LAUNCHED_DESKTOP_FILE = '/usr/share/applications/io.elementary.terminal.desktop'
# XDG_SEAT = 'seat0'
# SHLVL = '1'
# LANGUAGE = 'en_US'
# PROMPT_COMMAND = ('__bp_precmd_invoke_cmd; dbus-send --type=method_call --session '
'--dest=io.elementary.terminal /io/elementary/terminal '
'io.elementary.terminal.ProcessFinished string:$PANTHEON_TERMINAL_ID '
'string:"$(history 1 | cut -c 8-)" int32:$__bp_last_ret_value >/dev/null '
'2>&1; __bp_interactive_mode;')
# GDMSESSION = 'pantheon'
# GNOME_DESKTOP_SESSION_ID = 'this-is-deprecated'
# LOGNAME = 'davi'
# DBUS_SESSION_BUS_ADDRESS = 'unix:path=/run/user/1000/bus'
# XDG_RUNTIME_DIR = '/run/user/1000'
# XAUTHORITY = '/home/davi/.Xauthority'
# XDG_SESSION_PATH = '/org/freedesktop/DisplayManager/Session0'
# XDG_CONFIG_DIRS = '/etc/xdg/xdg-pantheon:/etc/xdg'
# PATH = '/home/davi/.buildozer/android/platform/apache-ant-1.9.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'
# SESSION_MANAGER = 'local/davi-M11x:#/tmp/.ICE-unix/1793,unix/davi-M11x:/tmp/.ICE-unix/1793'
# LESSOPEN = '| /usr/bin/lesspipe %s'
# _ = '/usr/local/bin/buildozer'
# PACKAGES_PATH = '/home/davi/.buildozer/android/packages'
# ANDROIDSDK = '/home/davi/.buildozer/android/platform/android-sdk'
# ANDROIDNDK = '/home/davi/.buildozer/android/platform/android-ndk-r19b'
# ANDROIDAPI = '27'
# ANDROIDMINAPI = '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
Here are my system spec:
neofetch
eeeeeeeeeeeeeeeee davi#davi-M11x
eeeeeeeeeeeeeeeeeeeeeee --------------
eeeee eeeeeeeeeeee eeeee OS: elementary OS 5.1.2 Hera x86_64
eeee eeeee eee eeee Host: X570 I AORUS PRO WIFI -CF
eeee eeee eee eeee Kernel: 5.3.0-45-generic
eee eee eee eee Uptime: 6 hours, 35 mins
eee eee eee eee Packages: 1834
ee eee eeee eeee Shell: bash 4.4.20
ee eee eeeee eeeeee Resolution: 900x1440, 1920x1200, 1920x1080
ee eee eeeee eeeee ee DE: Pantheon
eee eeee eeeeee eeeee eee WM: Mutter(Gala)
eee eeeeeeeeee eeeeee eee Theme: Elementary [GTK3]
eeeeeeeeeeeeeeeeeeeeeeee eeeee Icons: Elementary [GTK3]
eeeeeeee eeeeeeeeeeee eeee Terminal: io.elementary.t
eeeee eeeee CPU: AMD Ryzen 5 3600 6- (12) # 3.600GHz
eeeeeee eeeeeee GPU: NVIDIA GeForce GTX 1080 Ti
eeeeeeeeeeeeeeeee Memory: 3120MiB / 32126MiB
neofetch
eeeeeeeeeeeeeeeee davi#davi-M11x
eeeeeeeeeeeeeeeeeeeeeee --------------
eeeee eeeeeeeeeeee eeeee OS: elementary OS 5.1.2 Hera x86_64
eeee eeeee eee eeee Host: X570 I AORUS PRO WIFI -CF
eeee eeee eee eeee Kernel: 5.3.0-45-generic
eee eee eee eee Uptime: 6 hours, 35 mins
eee eee eee eee Packages: 1834
ee eee eeee eeee Shell: bash 4.4.20
ee eee eeeee eeeeee Resolution: 900x1440, 1920x1200, 1920x1080
ee eee eeeee eeeee ee DE: Pantheon
eee eeee eeeeee eeeee eee WM: Mutter(Gala)
eee eeeeeeeeee eeeeee eee Theme: Elementary [GTK3]
eeeeeeeeeeeeeeeeeeeeeeee eeeee Icons: Elementary [GTK3]
eeeeeeee eeeeeeeeeeee eeee Terminal: io.elementary.t
eeeee eeeee CPU: AMD Ryzen 5 3600 6- (12) # 3.600GHz
eeeeeee eeeeeee GPU: NVIDIA GeForce GTX 1080 Ti
eeeeeeeeeeeeeeeee Memory: 3120MiB / 32126MiB
I saw this issue on github a while ago. Here's the link
https://github.com/kivy/buildozer/issues/760
One of the people mentioned to download the NDK manually and setting it to the .buildozer/android/platform/ directory
However, when I got the error few weeks ago, I just deleted the .Buildozer directory from my project folder and built the apk again
I created a Kivy application and Buildozer generated this error when compiling it (Error log from terminal):
Execution failed for task ':processDebugResources'.
Failed to process resources, see aapt output above for details.
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
I've established all the necessary dependencies indicated on Kivy's website.
I tried to run the apk build with the options that the log recommended, but nothing has changed.
Can this error occur because I use a .kv file markup to create an interface window?
Has anyone ever encountered one of these before? How can I fix this?
I'm using linux Xubuntu 18.04, Buildozer version is latest, Cython version - 0.25.2
My Buildozer.spec
[app]
# (str) Title of your application
title = TicTacToe
# (str) Package name
package.name = TicTacToe_mobile_v0.1
# (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.10.0
#
# 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 =
# (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 = 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/*
#
And buildozer log:
running gradlew assembleDebug
[DEBUG]: /home/unchpokable/Kivy/TicTacToe/.buildozer/android/platform/build/dists/TicTacToe_mobile_v0.1/build/intermediates/manifests/full/debug/AndroidManifest.xml:6: AAPT: error: attribute 'package' in <manifest> tag is not a valid Android package name: 'org.test.tictactoe_mobile_v0.1'.
[DEBUG]:
[DEBUG]:
[DEBUG]: FAILURE: Build failed with an exception.
[DEBUG]:
[DEBUG]: * What went wrong:
[DEBUG]: Execution failed for task ':processDebugResources'.
[DEBUG]: > Failed to process resources, see aapt output above for details.
[DEBUG]:
[DEBUG]: * Try:
[DEBUG]: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
[DEBUG]:
[DEBUG]: * Get more help at https://help.gradle.org
[DEBUG]:
[DEBUG]: BUILD FAILED in 1s
[DEBUG]: 13 actionable tasks: 2 executed, 11 up-to-date
[DEBUG]:
[DEBUG]:
Exception in thread background thread for pid 14047:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.6/dist-packages/sh-1.12.14-py3.6.egg/sh.py", line 1540, in wrap
fn(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/sh-1.12.14-py3.6.egg/sh.py", line 2459, in background_thread
handle_exit_code(exit_code)
File "/usr/local/lib/python3.6/dist-packages/sh-1.12.14-py3.6.egg/sh.py", line 2157, in fn
return self.command.handle_command_exit_code(exit_code)
File "/usr/local/lib/python3.6/dist-packages/sh-1.12.14-py3.6.egg/sh.py", line 815, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_1:
RAN: /home/unchpokable/Kivy/TicTacToe/.buildozer/android/platform/build/dists/TicTacToe_mobile_v0.1/gradlew assembleDebug
STDOUT:
/home/unchpokable/Kivy/TicTacToe/.buildozer/android/platform/build/dists/TicTacToe_mobile_v0.1/build/intermediates/manifests/full/debug/AndroidManifest.xml:6: AAPT: error: attribute 'package' in <manifest> tag is not a valid Android package name: 'org.test.tictactoe_mobile_v0.1'.
FAILURE: Build failed with an exception.
BUILD FAILED in 1s
13 actionable tasks: 2 executed, 11 up-to-date
[INFO]: STDERR:
[INFO]: COMMAND:
cd /home/unchpokable/Kivy/TicTacToe/.buildozer/android/platform/build/dists/TicTacToe_mobile_v0.1 && /home/unchpokable/Kivy/TicTacToe/.buildozer/android/platform/build/dists/TicTacToe_mobile_v0.1/gradlew assembleDebug
[WARNING]: ERROR: /home/unchpokable/Kivy/TicTacToe/.buildozer/android/platform/build/dists/TicTacToe_mobile_v0.1/gradlew failed!
WARNING: Received a --sdk argument, but this argument is deprecated and does nothing.
No compiled python is present to zip, skipping.
No setup.py/pyproject.toml used, copying full private data into .apk.
Applying Java source code patches...
Applying patch: src/patches/SDLActivity.java.patch
Warning: failed to apply patch (exit code 1), assuming it is already applied: src/patches/SDLActivity.java.patch
# Command failed: /usr/bin/python3 -m pythonforandroid.toolchain apk --debug --bootstrap=sdl2 --dist_name TicTacToe_mobile_v0.1 --name TicTacToe --version 0.1 --package org.test.tictactoe_mobile_v0.1 --android_api 27 --minsdk 21 --ndk-api 21 --private /home/unchpokable/Kivy/TicTacToe/.buildozer/android/app --orientation portrait --window --copy-libs --arch armeabi-v7a --color=always --storage-dir="/home/unchpokable/Kivy/TicTacToe/.buildozer/android/platform/build" --ndk-api=21
I am trying to build a signed apk using buildozer on a virtual machine which is running on windows 10 but I am getting this error:
[INFO]: Selecting java build tool:
[INFO]: Detected highest available build tools version to be 28.0.3
[INFO]: Building with gradle, as gradle executable is present
[DEBUG]: -> running gradlew assembleDebug
[DEBUG]: > Configuring > 0/1 projects > root project > Resolving dependen
[DEBUG]: FAILURE: Build failed with an exception.
[DEBUG]:
[DEBUG]: * What went wrong:
[DEBUG]: A problem occurred configuring root project 'myapp'.
[DEBUG]: > Could not resolve all files for configuration ':classpath'.
[DEBUG]: > Could not find common.jar (com.android.tools:common:25.3.1).
[DEBUG]: Searched in the following locations:
[DEBUG]: https://jcenter.bintray.com/com/android/tools/common/25.3.1/common-25.3.1.jar
[DEBUG]:
[DEBUG]: * Try:
[DEBUG]: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
[DEBUG]:
[DEBUG]: BUILD FAILED
[DEBUG]:
[DEBUG]: Total time: 33.436 secs
[DEBUG]:
Exception in thread background thread for pid 10226:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 2170, in background_thread
handle_exit_code(exit_code)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 1929, in fn
return self.command.handle_command_exit_code(exit_code)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 672, in handle_command_exit_code
raise exc
ErrorReturnCode_1:
RAN: ./gradlew assembleDebug
STDOUT:
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'myapp'.
> Could not resolve all files for configuration ':classpath'.
> Could not find common.jar (com.android.tools:common:25.3.1).
Searched in the following locations:
https://jcenter.bintray.com/com/android/tools/common/25.3.1/common-25.3.1.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 33.436 secs
STDERR:
[INFO]: STDOUT:
> Configuring > 0/1 projects > root project > Resolving dependencies ':c
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'myapp'.
> Could not resolve all files for configuration ':classpath'.
> Could not find common.jar (com.android.tools:common:25.3.1).
Searched in the following locations:
https://jcenter.bintray.com/com/android/tools/common/25.3.1/common-25.3.1.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 33.436 secs
[INFO]: STDERR:
[INFO]: COMMAND:
cd /home/kivy/helloworld/.buildozer/android/platform/build/dists/myapp && ./gradlew assembleDebug
[WARNING]: ERROR: ./gradlew failed!
# Command failed: /usr/bin/python2.7 -m pythonforandroid.toolchain apk --debug --bootstrap=sdl2 --dist_name myapp --name 'My Application' --version 0.1 --package org.test.myapp --android_api 19 --minsdk 19 --private /home/kivy/helloworld/.buildozer/android/app --icon /home/kivy/helloworld/./data/icon.png --orientation landscape --copy-libs --local-recipes /home/kivy/helloworld/.buildozer/android/platform/python-for-android-master/pythonforandroid/recipes --arch armeabi-v7a --color=always --storage-dir="/home/kivy/helloworld/.buildozer/android/platform/build"
#
# 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
I checked the address displayed in the error log 1 and common-25.3.1.jar does not seems to exist there.
Here is my main.py:
__version__ = "0.1"
from kivy.app import App
from kivy.uix.scatter import Scatter
from kivy.uix.label import Label
from kivy.uix.floatlayout import FloatLayout
class TutorialApp(App):
def build(self):
f = FloatLayout()
s = Scatter()
l = Label(text="Hello!",
font_size=150)
f.add_widget(s)
s.add_widget(l)
return f
if __name__ == "__main__":
TutorialApp().run()
and here is my 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
# (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 seperated e.g. requirements = sqlite3,kivy
requirements = kivy,python2
# (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, portrait or all)
orientation = landscape
# (list) List of service to declare
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY
#
# OSX Specific
#
#
# author = © Copyright Info
#
# Android specific
#
# (bool) Indicate if the application should be fullscreen or not
fullscreen = 1
# (list) Permissions
#android.permissions = INTERNET
# (int) Android API to use
android.api = 19
# (int) Minimum API required
android.minapi = 19
# (int) Android SDK version to use
#android.sdk = 20
# (str) Android NDK version to use
#android.ndk = 9c
# (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 =
# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
#p4a.source_dir =
p4a.local_recipes = %(source.dir)s/.buildozer/android/platform/python-for-android-master/pythonforandroid/recipes
# (list) python-for-android whitelist
#android.p4a_whitelist =
# (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
# (str) Android entry point, default is ok for Kivy-based app
#android.entrypoint = org.renpy.android.PythonActivity
# (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 =
# (str) python-for-android branch to use, if not master, useful to try
# not yet merged features.
#android.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 =
# (list) Android additionnal 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
#
# iOS specific
#
# (str) Path to a custom kivy-ios folder
#ios.kivy_ios_dir = ../kivy-ios
# (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
I need help getting around this issue. Thank you in advance.
maybe you need this :
#(list) Gradle dependencies to add
#android.gradle_dependencies =
because your buildozer.spec doesn't exist
I tried running buildozer using VM on my Windows computer. I used python 3 so I got python3crystax downloaded. I tried packaging the app with the usual 'buildozer android debug' command. Everything was fine until I received the log below. Can someone tell me what went wrong and how I can fix it?
-post-compile:
-obfuscate:
-dex:
[dex] input: /home/kivy/.buildozer/android/platform/build/dists/learningtheory/bin/classes
[dex] Found modified input file
[dex] Converting compiled files and external libraries into /home/kivy/.buildozer/android/platform/build/dists/learningtheory/bin/classes.dex...
-crunch:
[crunch] Crunching PNG Files in source dir: /home/kivy/.buildozer/android/platform/build/dists/learningtheory/res
[crunch] To destination dir: /home/kivy/.buildozer/android/platform/build/dists/learningtheory/bin/res
[crunch] Processing image to cache: /home/kivy/.buildozer/android/platform/build/dists/learningtheory/res/drawable/icon.png => /home/kivy/.buildozer/android/platform/build/dists/learningtheory/bin/res/drawable/icon.png
[crunch] (processed image to cache entry /home/kivy/.buildozer/android/platform/build/dists/learningtheory/bin/res/drawable/icon.png: 49% size of source)
[crunch] Crunched 1 PNG files to update cache
[crunch] /home/kivy/.buildozer/android/platform/build/dists/learningtheory/res/drawable/icon.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
-package-resources:
[aapt] Creating full resource package...
[aapt] (skipping file '.gitkeep' due to ANDROID_AAPT_IGNORE pattern '.*')
[aapt] Unable to add '/home/kivy/.buildozer/android/platform/build/dists/learningtheory/assets/private.mp3': Zip add failed (-2147483648)
[aapt] ERROR: unable to process assets while packaging '/home/kivy/.buildozer/android/platform/build/dists/learningtheory/bin/LearningTheoryGame-1.0.ap_'
[aapt] ERROR: packaging of '/home/kivy/.buildozer/android/platform/build/dists/learningtheory/bin/LearningTheoryGame-1.0.ap_' failed
BUILD FAILED
/home/kivy/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:932: The following error occurred while executing this line:
/home/kivy/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:950: null returned: 1
Total time: 31 seconds
STDERR:
[INFO]: STDOUT (last 20 lines of 94):
-crunch:
[crunch] Crunching PNG Files in source dir: /home/kivy/.buildozer/android/platform/build/dists/learningtheory/res
[crunch] To destination dir: /home/kivy/.buildozer/android/platform/build/dists/learningtheory/bin/res
[crunch] Processing image to cache: /home/kivy/.buildozer/android/platform/build/dists/learningtheory/res/drawable/icon.png => /home/kivy/.buildozer/android/platform/build/dists/learningtheory/bin/res/drawable/icon.png
[crunch] (processed image to cache entry /home/kivy/.buildozer/android/platform/build/dists/learningtheory/bin/res/drawable/icon.png: 49% size of source)
[crunch] Crunched 1 PNG files to update cache
[crunch] /home/kivy/.buildozer/android/platform/build/dists/learningtheory/res/drawable/icon.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
-package-resources:
[aapt] Creating full resource package...
[aapt] (skipping file '.gitkeep' due to ANDROID_AAPT_IGNORE pattern '.*')
[aapt] Unable to add '/home/kivy/.buildozer/android/platform/build/dists/learningtheory/assets/private.mp3': Zip add failed (-2147483648)
[aapt] ERROR: unable to process assets while packaging '/home/kivy/.buildozer/android/platform/build/dists/learningtheory/bin/LearningTheoryGame-1.0.ap_'
[aapt] ERROR: packaging of '/home/kivy/.buildozer/android/platform/build/dists/learningtheory/bin/LearningTheoryGame-1.0.ap_' failed
BUILD FAILED
/home/kivy/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:932: The following error occurred while executing this line:
/home/kivy/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:950: null returned: 1
Total time: 31 seconds
[INFO]: STDERR:
[INFO]: COMMAND:
cd /home/kivy/.buildozer/android/platform/build/dists/learningtheory && /home/kivy/.buildozer/android/platform/apache-ant-1.9.4/bin/ant debug
[WARNING]: ERROR: /home/kivy/.buildozer/android/platform/apache-ant-1.9.4/bin/ant failed!
Could not find hostpython, will not compile to .pyo (this is normal with python3)
WARNING: Received a --sdk argument, but this argument is deprecated and does nothing.
No compiled python is present to zip, skipping.
this should only be the case if you are using the CrystaX python
# Command failed: /usr/bin/python -m pythonforandroid.toolchain apk --debug --bootstrap=sdl2 --dist_name learningtheory --name 'Learning Theory Game' --version 1.0 --package com.mydomain.learningtheory --android_api 19 --sdk 19 --minsdk 9 --private /home/kivy/.buildozer/android/app --orientation portrait --window --copy-libs --arch armeabi-v7a --color=always --storage-dir=/home/kivy/.buildozer/android/platform/build
#
# 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
So the above happened and stopped building process. Also another thing I noticed in the logs were the lines below with lots of warnings, although these lines didn't stop the process of building (these lines appeared earlier in the sequence). Perhaps there's something I'm missing here as well?
# Package the application
# project.properties updated
# Run "/usr/bin/python -m pythonforandroid.toolchain apk --debug --bootstrap=sdl2 --dist_name learningtheory --name 'Learning Theory Game' --version 1.0 --package com.mydomain.learningtheory --android_api 19 --sdk 19 --minsdk 9 --private /home/kivy/.buildozer/android/app --orientation portrait --window --copy-libs --arch armeabi-v7a --color=always --storage-dir=/home/kivy/.buildozer/android/platform/build"
# Cwd /home/kivy/.buildozer/android/platform/python-for-android-master
[INFO]: Will compile for the following archs: armeabi-v7a
[INFO]: Getting Android API version from user argument
[INFO]: Available Android APIs are (19)
[INFO]: Requested API target 19 is available, continuing.
[INFO]: Found NDK dir in $ANDROIDNDK
[INFO]: Got NDK version from $ANDROIDNDKVER
[WARNING]: NDK version was set as r9c, but checking the NDK dir claims it is 10.3.2.
[WARNING]: The build will try to continue, but it may fail and you should check that your setting is correct.
[WARNING]: If the NDK dir result is correct, you don't need to manually set the NDK ver.
[INFO]: Using Crystax NDK r9c
[INFO]: Found virtualenv at /usr/local/bin/virtualenv
[INFO]: ccache is missing, the build will not be optimized in the future.
[INFO]: Found the following toolchain versions: ['4.9', '5', 'clang3.6', 'clang3.7']
[INFO]: Picking the latest gcc toolchain, here 5
[WARNING]: Missing executable: autoconf is not installed
[WARNING]: Missing executable: automake is not installed
[WARNING]: Missing executable: libtoolize is not installed
[INFO]: Of the existing distributions, the following meet the given requirements:
[INFO]: learningtheory: includes recipes (hostpython3crystax, sdl2_image, sdl2_mixer, sdl2_ttf, python3crystax, sdl2, six, pyjnius, kivy), built for archs (armeabi-v7a)
[INFO]: learningtheory has compatible recipes, using this one
[INFO]: Of the existing distributions, the following meet the given requirements:
[INFO]: learningtheory: includes recipes (hostpython3crystax, sdl2_image, sdl2_mixer, sdl2_ttf, python3crystax, sdl2, six, pyjnius, kivy), built for archs (armeabi-v7a)
[INFO]: learningtheory has compatible recipes, using this one
[INFO]: -> directory context /home/kivy/.buildozer/android/platform/build/dists/learningtheory
[DEBUG]: -> running ant debug
[DEBUG]: Buildfile: /home/kivy/.buildozer/android/platform/build/dists/learningtheory/build.xml
[DEBUG]:
[DEBUG]: -set-mode-check:
[DEBUG]:
[DEBUG]: -set-debug-files:
UPDATE: BUILDOZER FILE
Below is the buildozer.spec file that I used when running the buildozer
[app]
# (str) Title of your application
title = Learning Theory Game
# (str) Package name
package.name = learningtheory
# (str) Package domain (needed for android/ios packaging)
package.domain = com.mydomain
# (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,gif
# (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 = 1.0
# (str) Application versioning (method 2)
# version.regex = __version__ = ['"](.*)['"]
# version.filename = %(source.dir)s/main.py
# (list) Application requirements
# comma seperated e.g. requirements = sqlite3,kivy
requirements = python3crystax, 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, 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) Android API to use
#android.api = 19
# (int) Minimum API required
#android.minapi = 9
# (int) Android SDK version to use
#android.sdk = 20
# (str) Android NDK version to use
#android.ndk = 9c
# (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
# (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 =
# (str) python-for-android branch to use, defaults to master
#p4a.branch = stable
# (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 =
# (list) Android additionnal 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
#
# iOS specific
#
# (str) Path to a custom kivy-ios folder
#ios.kivy_ios_dir = ../kivy-ios
# (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 = /build/myapp
# (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