Out of the blue I am unable to compile any of my programs. I made no changes to my buildozer setup. Could buildozer have automatically updated an (incompatible) dependency without that being noted in the log file? I include below first the log file for my current program, followed by its spec file. In the log file I have highlighted in red what I think must be the most informative lines, though I confess that most of it is opaque to me. I'd be very grateful for guidance out of this depressing situation.
kivy@kivyvm:~/Documents$ 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/crystax_temp/crystax-ndk-10.3.2
# Check application requirements
# Check garden requirements
# Compile platform
# Run 'python -m pythonforandroid.toolchain --color=always --storage-dir=/home/kivy/Documents/.buildozer/android/platform/build create --dist_name=Myprogram --bootstrap=sdl2 --requirements=python3crystax,kivy --arch armeabi-v7a --copy-libs'
# Cwd /home/kivy/Documents/.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
[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]: Myprogram: includes recipes (hostpython3crystax, sdl2_image, sdl2_mixer, sdl2_ttf, python3crystax, sdl2, six, pyjnius, kivy), built for archs (armeabi-v7a)
[INFO]: Myprogram has compatible recipes, using this one
# Build the application #107
# Copy application source from /home/kivy/Documents
# Create directory /home/kivy/Documents/.buildozer/android/app
# Copy /home/kivy/Documents/courier e.png
… (numerous similar lines)
# Create directory /home/kivy/Documents/.buildozer/android/app/pronouncing
# Copy /home/kivy/Documents/pronouncing/__init__.py
# Copy /home/kivy/Documents/pronouncing/cmudict-0.7b
# Create directory /home/kivy/Documents/.buildozer/android/app/pronouncing-0.1.5.dist-info
# Copy /home/kivy/Documents/pronouncing-0.1.5.dist-info/RECORD
# Copy /home/kivy/Documents/pronouncing-0.1.5.dist-info/WHEEL
# Copy /home/kivy/Documents/pronouncing-0.1.5.dist-info/top_level.txt
# Copy /home/kivy/Documents/pronouncing-0.1.5.dist-info/zip-safe
# Copy /home/kivy/Documents/pronouncing-0.1.5.dist-info/INSTALLER
# Copy /home/kivy/Documents/pronouncing-0.1.5.dist-info/METADATA
# Create directory /home/kivy/Documents/.buildozer/android/app/big blocks
# Copy /home/kivy/Documents/big blocks/Letter_Blocks_01_Set_1_U_128x128.png
… (numerous similar lines)
# Create directory /home/kivy/Documents/.buildozer/android/app/pkg_resources
# Copy /home/kivy/Documents/pkg_resources/py31compat.py
# Copy /home/kivy/Documents/pkg_resources/__init__.py
# Create directory /home/kivy/Documents/.buildozer/android/app/pkg_resources/extern
# Copy /home/kivy/Documents/pkg_resources/extern/__init__.py
# Create directory /home/kivy/Documents/.buildozer/android/app/pkg_resources/_vendor
# Copy /home/kivy/Documents/pkg_resources/_vendor/six.py
# Copy /home/kivy/Documents/pkg_resources/_vendor/pyparsing.py
# Copy /home/kivy/Documents/pkg_resources/_vendor/__init__.py
# Copy /home/kivy/Documents/pkg_resources/_vendor/appdirs.py
# Create directory /home/kivy/Documents/.buildozer/android/app/pkg_resources/_vendor/packaging
# Copy /home/kivy/Documents/pkg_resources/_vendor/packaging/__about__.py
# Copy /home/kivy/Documents/pkg_resources/_vendor/packaging/markers.py
# Copy /home/kivy/Documents/pkg_resources/_vendor/packaging/_structures.py
# Copy /home/kivy/Documents/pkg_resources/_vendor/packaging/requirements.py
# Copy /home/kivy/Documents/pkg_resources/_vendor/packaging/specifiers.py
# Copy /home/kivy/Documents/pkg_resources/_vendor/packaging/utils.py
# Copy /home/kivy/Documents/pkg_resources/_vendor/packaging/version.py
# Copy /home/kivy/Documents/pkg_resources/_vendor/packaging/__init__.py
# Copy /home/kivy/Documents/pkg_resources/_vendor/packaging/_compat.py
# Create directory /home/kivy/Documents/.buildozer/android/app/small blocks
# Copy /home/kivy/Documents/small blocks/Letter_Blocks_01_Set_1_W_64x64.png
...(numerous similar lines)
# Package the application
# Run 'python -m pythonforandroid.toolchain --color=always --storage-dir=/home/kivy/Documents/.buildozer/android/platform/build apk --bootstrap=sdl2 --dist_name Myprogram --name Myprogram --version 0.1 --package org.test.myprogram --android_api 19 --minsdk 9 --private /home/kivy/Documents/.buildozer/android/app --orientation portrait --copy-libs'
# Cwd /home/kivy/Documents/.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
[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]: Myprogram: includes recipes (hostpython3crystax, sdl2_image, sdl2_mixer, sdl2_ttf, python3crystax, sdl2, six, pyjnius, kivy), built for archs (armeabi-v7a)
[INFO]: Myprogram has compatible recipes, using this one
[INFO]: Of the existing distributions, the following meet the given requirements:
[INFO]: Myprogram: includes recipes (hostpython3crystax, sdl2_image, sdl2_mixer, sdl2_ttf, python3crystax, sdl2, six, pyjnius, kivy), built for archs (armeabi-v7a)
[INFO]: Myprogram has compatible recipes, using this one
[INFO]: -> directory context /home/kivy/Documents/.buildozer/android/platform/build/dists/Myprogram
[INFO]: -> running ant debug
Could not find hostpython, will not compile to .pyo (this is normal with python3)
No compiled python is present to zip, skipping.
this should only be the case if you are using the CrystaX python
working: Total time: 3 seconds Exception in thread background thread for pid 2073:
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/.buildozer/android/platform/build/dists/Myprogram/build.xml
-set-mode-check:
-set-debug-files:
-check-env:
[checkenv] Android SDK Tools Revision 25.2.5
[checkenv] Installed at /home/kivy/.buildozer/android/platform/android-sdk-20
-setup:
[echo] Project Name: Myprogram-0.1
[gettype] Project Type: Application
-set-debug-mode:
-debug-obfuscation-check:
-pre-build:
-build-setup:
[getbuildtools] Using latest Build Tools: 26.0.0
[echo] Resolving Build Target for Myprogram-0.1...
[gettarget] Project Target: Android 4.4.2
[gettarget] API level: 19
[echo] ----------
[echo] Creating output directories if needed...
[echo] ----------
[echo] Resolving Dependencies for Myprogram-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] No need to generate new BuildConfig.
-pre-compile:
-compile:
[javac] Compiling 2 source files to /home/kivy/Documents/.buildozer/android/platform/build/dists/Myprogram/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] 3 warnings
-post-compile:
-obfuscate:
-dex:
[dex] input: /home/kivy/Documents/.buildozer/android/platform/build/dists/Myprogram/bin/classes
[dex] Found modified input file
[dex] Converting compiled files and external libraries into /home/kivy/Documents/.buildozer/android/platform/build/dists/Myprogram/bin/classes.dex...
-crunch:
[crunch] Crunching PNG Files in source dir: /home/kivy/Documents/.buildozer/android/platform/build/dists/Myprogram/res
[crunch] To destination dir: /home/kivy/Documents/.buildozer/android/platform/build/dists/Myprogram/bin/res
[crunch] Processing image to cache: /home/kivy/Documents/.buildozer/android/platform/build/dists/Myprogram/res/drawable/icon.png => /home/kivy/Documents/.buildozer/android/platform/build/dists/Myprogram/bin/res/drawable/icon.png
[crunch] (processed image to cache entry /home/kivy/Documents/.buildozer/android/platform/build/dists/Myprogram/bin/res/drawable/icon.png: 49% size of source)
[crunch] Crunched 1 PNG files to update cache
-package-resources:
BUILD FAILED
/home/kivy/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:928: The following error occurred while executing this line:
/home/kivy/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:946: java.lang.ArrayIndexOutOfBoundsException: 1
at com.android.ant.DependencyGraph.parseDependencyFile(DependencyGraph.java:180)
at com.android.ant.DependencyGraph.<init>(DependencyGraph.java:54)
at com.android.ant.SingleDependencyTask.initDependencies(SingleDependencyTask.java:87)
at com.android.ant.AaptExecTask.execute(AaptExecTask.java:509)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
at com.android.ant.IfElseTask.execute(IfElseTask.java:124)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:396)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.Main.runBuild(Main.java:851)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Total time: 3 seconds
STDERR:
[INFO]: STDOUT (last 20 lines of 128):
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:396)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.Main.runBuild(Main.java:851)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Total time: 3 seconds
[INFO]: STDERR:
[INFO]: COMMAND:
cd /home/kivy/Documents/.buildozer/android/platform/build/dists/Myprogram && /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/.buildozer/android/platform/build apk --bootstrap=sdl2 --dist_name Myprogram --name Myprogram --version 0.1 --package org.test.myprogram --android_api 19 --minsdk 9 --private /home/kivy/Documents/.buildozer/android/app --orientation portrait --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$
BUILDOZER.SPEC
[app]
# (str) Title of
your application
title = Myprogram
# (str) Package
name
package.name =
Myprogram
# (str) Package
domain (needed for android/ios packaging)
package.domain =
org.test
# (str) Source
code where the main.py live
source.dir = .
# (list) Source
files to include (let empty to include all the files)
source.include_exts
= py,png,jpg,kv,atlas,txt,wav,7b
# (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 =
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 = B)
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
= /home/kivy/crystax_temp/crystax-ndk-10.3.2
# (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