Bulldozer python error

Versions Python: 3.9 OS: macOS Monterey Buildozer: 1.3.0 Description When I run "buildozer -v android debug", this error pops up. I think it's related to virtual environment but not s...

Versions

  • Python: 3.9
  • OS: macOS Monterey
  • Buildozer: 1.3.0

Description

When I run «buildozer -v android debug», this error pops up. I think it’s related to virtual environment but not sure.

buildozer.spec

Command:

buildozer -v android debug

Spec file:

[app]

# (str) Title of your application
title = App

# (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,ttf,db

# (list) List of inclusions using pattern matching
#source.include_patterns = assets/*,images/*.png

# (list) Source files to exclude (let empty to not exclude anything)
#source.exclude_exts = spec

# (list) List of directory to exclude (let empty to not exclude anything)
#source.exclude_dirs = tests, bin, venv

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

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

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

# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3,kivy,kivymd,webbrowser,sqlite3,os,threading,csv,pathlib,dataclasses,ast,functools

# (str) Custom source folders for requirements
# Sets custom source for any requirements with recipes
# requirements.source.kivy = ../../kivy

# (str) Presplash of the application
#presplash.filename = %(source.dir)s/data/presplash.png

# (str) Icon of the application
#icon.filename = %(source.dir)s/data/icon.png

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

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

#
# OSX Specific
#

#
# author = © Copyright Info

# change the major version of python used by the app
osx.python_version = 3

# Kivy version to use
osx.kivy_version = 1.9.1

#
# Android specific
#

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

# (string) Presplash background color (for android toolchain)
# Supported formats are: #RRGGBB #AARRGGBB or one of the following names:
# red, blue, green, black, white, gray, cyan, magenta, yellow, lightgray,
# darkgray, grey, lightgrey, darkgrey, aqua, fuchsia, lime, maroon, navy,
# olive, purple, silver, teal.
#android.presplash_color = #FFFFFF

# (string) Presplash animation using Lottie format.
# see https://lottiefiles.com/ for examples and https://airbnb.design/lottie/
# for general documentation.
# Lottie files can be created using various tools, like Adobe After Effect or Synfig.
#android.presplash_lottie = "path/to/lottie/file.json"

# (str) Adaptive icon of the application (used if Android API level is 26+ at runtime)
#icon.adaptive_foreground.filename = %(source.dir)s/data/icon_fg.png
#icon.adaptive_background.filename = %(source.dir)s/data/icon_bg.png

# (list) Permissions
#android.permissions = INTERNET

# (list) features (adds uses-feature -tags to manifest)
#android.features = android.hardware.usb.host

# (int) Target Android API, should be as high as possible.
#android.api = 27

# (int) Minimum API your APK / AAB 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.kivy.android.PythonActivity

# (str) Full name including package path of the Java class that implements Android Activity
# use that parameter together with android.entrypoint to set custom Java class instead of PythonActivity
#android.activity_class_name = org.kivy.android.PythonActivity

# (str) Extra xml to write directly inside the <manifest> element of AndroidManifest.xml
# use that parameter to provide a filename from where to load your custom XML code
#android.extra_manifest_xml = ./src/android/extra_manifest.xml

# (str) Extra xml to write directly inside the <manifest><application> tag of AndroidManifest.xml
# use that parameter to provide a filename from where to load your custom XML arguments:
#android.extra_manifest_application_arguments = ./src/android/extra_manifest_application_arguments.xml

# (str) Full name including package path of the Java class that implements Python Service
# use that parameter to set custom Java class instead of PythonService
#android.service_class_name = org.kivy.android.PythonService

# (str) Android app theme, default is ok for Kivy-based app
# android.apptheme = "@android:style/Theme.NoTitleBar"

# (list) Pattern to whitelist for the whole project
#android.whitelist =

# (str) Path to a custom whitelist file
#android.whitelist_src =

# (str) Path to a custom blacklist file
#android.blacklist_src =

# (list) List of Java .jar files to add to the libs so that pyjnius can access
# their classes. Don't add jars that you do not need, since extra jars can slow
# down the build process. Allows wildcards matching, for example:
# OUYA-ODK/libs/*.jar
#android.add_jars = foo.jar,bar.jar,path/to/more/*.jar

# (list) List of Java files to add to the android project (can be java or a
# directory containing the files)
#android.add_src =

# (list) Android AAR archives to add
#android.add_aars =

# (list) Put these files or directories in the apk assets directory.
# Either form may be used, and assets need not be in 'source.include_exts'.
# 1) android.add_assets = source_asset_relative_path
# 2) android.add_assets = source_asset_path:destination_asset_relative_path
#android.add_assets =

# (list) Gradle dependencies to add
#android.gradle_dependencies =

# (bool) Enable AndroidX support. Enable when 'android.gradle_dependencies'
# contains an 'androidx' package, or any package from Kotlin source.
# android.enable_androidx requires android.api >= 28
#android.enable_androidx = False

# (list) add java compile options
# this can for example be necessary when importing certain java libraries using the 'android.gradle_dependencies' option
# see https://developer.android.com/studio/write/java8-support for further information
# android.add_compile_options = "sourceCompatibility = 1.8", "targetCompatibility = 1.8"

# (list) Gradle repositories to add {can be necessary for some android.gradle_dependencies}
# please enclose in double quotes 
# e.g. android.gradle_repositories = "maven { url 'https://kotlin.bintray.com/ktor' }"
#android.add_gradle_repositories =

# (list) packaging options to add 
# see https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.html
# can be necessary to solve conflicts in gradle_dependencies
# please enclose in double quotes 
# e.g. android.add_packaging_options = "exclude 'META-INF/common.kotlin_module'", "exclude 'META-INF/*.kotlin_module'"
#android.add_packaging_options =

# (list) Java classes to add as activities to the manifest.
#android.add_activities = com.example.ExampleActivity

# (str) OUYA Console category. Should be one of GAME or APP
# If you leave this blank, OUYA support will not be enabled
#android.ouya.category = GAME

# (str) Filename of OUYA Console icon. It must be a 732x412 png image.
#android.ouya.icon.filename = %(source.dir)s/data/ouya_icon.png

# (str) XML file to include as an intent filters in <activity> tag
#android.manifest.intent_filters =

# (str) launchMode to set for the main activity
#android.manifest.launch_mode = standard

# (list) Android additional libraries to copy into libs/armeabi
#android.add_libs_armeabi = libs/android/*.so
#android.add_libs_armeabi_v7a = libs/android-v7/*.so
#android.add_libs_arm64_v8a = libs/android-v8/*.so
#android.add_libs_x86 = libs/android-x86/*.so
#android.add_libs_mips = libs/android-mips/*.so

# (bool) Indicate whether the screen should stay on
# Don't forget to add the WAKE_LOCK permission if you set this to True
#android.wakelock = False

# (list) Android application meta-data to set (key=value format)
#android.meta_data =

# (list) Android library project to add (will be added in the
# project.properties automatically.)
#android.library_references =

# (list) Android shared libraries which will be added to AndroidManifest.xml using <uses-library> tag
#android.uses_library =

# (str) Android logcat filters to use
android.logcat_filters = *:S python:D

# (bool) Android logcat only display log for activity's pid
#android.logcat_pid_only = False

# (str) Android additional adb arguments
#android.adb_args = -H host.docker.internal

# (bool) Copy library instead of making a libpymodules.so
#android.copy_libs = 1

# (list) The Android archs to build for, choices: armeabi-v7a, arm64-v8a, x86, x86_64
# In past, was `android.arch` as we weren't supporting builds for multiple archs at the same time.
android.archs = arm64-v8a, armeabi-v7a

# (int) overrides automatic versionCode computation (used in build.gradle)
# this is not the same as app version and should only be edited if you know what you're doing
# android.numeric_version = 1

# (bool) enables Android auto backup feature (Android API >=23)
android.allow_backup = True

# (str) XML file for custom backup rules (see official auto backup documentation)
# android.backup_rules =

# (str) If you need to insert variables into your AndroidManifest.xml file,
# you can do so with the manifestPlaceholders property.
# This property takes a map of key-value pairs. (via a string)
# Usage example : android.manifest_placeholders = [myCustomUrl:"org.kivy.customurl"]
# android.manifest_placeholders = [:]

# (bool) disables the compilation of py to pyc/pyo files when packaging
# android.no-compile-pyo = True

# (str) The format used to package the app for release mode (aab or apk).
# android.release_artifact = aab

#
# Python for android (p4a) specific
#

# (str) python-for-android URL to use for checkout
#p4a.url =

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

# (str) python-for-android branch to use, defaults to master
#p4a.branch = master

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

# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
#p4a.source_dir =

# (str) The directory in which python-for-android should look for your own build recipes (if any)
#p4a.local_recipes =

# (str) Filename to the hook for p4a
#p4a.hook =

# (str) Bootstrap to use for android builds
# p4a.bootstrap = sdl2

# (int) port number to specify an explicit --port= p4a argument (eg for bootstrap flask)
#p4a.port =

# Control passing the --use-setup-py vs --ignore-setup-py to p4a
# "in the future" --use-setup-py is going to be the default behaviour in p4a, right now it is not
# Setting this to false will pass --ignore-setup-py, true will pass --use-setup-py
# NOTE: this is general setuptools integration, having pyproject.toml is enough, no need to generate
# setup.py if you're using Poetry, but you need to add "toml" to source.include_exts.
#p4a.setup_py = false

# (str) extra command line arguments to pass when invoking pythonforandroid.toolchain
#p4a.extra_args =


#
# iOS specific
#

# (str) Path to a custom kivy-ios folder
#ios.kivy_ios_dir = ../kivy-ios
# Alternately, specify the URL and branch of a git checkout:
ios.kivy_ios_url = https://github.com/kivy/kivy-ios
ios.kivy_ios_branch = master

# Another platform dependency: ios-deploy
# Uncomment to use a custom checkout
#ios.ios_deploy_dir = ../ios_deploy
# Or specify URL and branch
ios.ios_deploy_url = https://github.com/phonegap/ios-deploy
ios.ios_deploy_branch = 1.10.0

# (bool) Whether or not to sign the code
ios.codesign.allowed = false

# (str) Name of the certificate to use for signing the debug version
# Get a list of available identities: buildozer ios list_identities
#ios.codesign.debug = "iPhone Developer: <lastname> <firstname> (<hexstring>)"

# (str) The development team to use for signing the debug version
#ios.codesign.development_team.debug = <hexstring>

# (str) Name of the certificate to use for signing the release version
#ios.codesign.release = %(ios.codesign.debug)s

# (str) The development team to use for signing the release version
#ios.codesign.development_team.release = <hexstring>

# (str) URL pointing to .ipa file to be installed
# This option should be defined along with `display_image_url` and `full_size_image_url` options.
#ios.manifest.app_url =

# (str) URL pointing to an icon (57x57px) to be displayed during download
# This option should be defined along with `app_url` and `full_size_image_url` options.
#ios.manifest.display_image_url =

# (str) URL pointing to a large icon (512x512px) to be used by iTunes
# This option should be defined along with `app_url` and `display_image_url` options.
#ios.manifest.full_size_image_url =


[buildozer]

# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
log_level = 2

# (int) Display warning if buildozer is run as root (0 = False, 1 = True)
warn_on_root = 1

# (str) Path to build artifact storage, absolute or relative to spec file
# build_dir = ./.buildozer

# (str) Path to build output (i.e. .apk, .aab, .ipa) storage
# bin_dir = ./bin

#    -----------------------------------------------------------------------------
#    List as sections
#
#    You can define all the "list" as [section:key].
#    Each line will be considered as a option to the list.
#    Let's take [app] / source.exclude_patterns.
#    Instead of doing:
#
#[app]
#source.exclude_patterns = license,data/audio/*.wav,data/images/original/*
#
#    This can be translated into:
#
#[app:source.exclude_patterns]
#license
#data/audio/*.wav
#data/images/original/*
#


#    -----------------------------------------------------------------------------
#    Profiles
#
#    You can extend section / key with a profile
#    For example, you want to deploy a demo version of your application without
#    HD content. You could first change the title to add "(demo)" in the name
#    and extend the excluded directories to remove the HD content.
#
#[app@demo]
#title = My Application (demo)
#
#[app:source.exclude_patterns@demo]
#images/hd/*
#
#    Then, invoke the command line with the "demo" profile:
#
#buildozer --profile demo android debug

Logs

[INFO]:    # Postbuilding recipes
[INFO]:    Postbuilding hostpython3 for arm64-v8a
[INFO]:    Postbuilding libffi for arm64-v8a
[INFO]:    Postbuilding openssl for arm64-v8a
[INFO]:    Postbuilding sdl2_image for arm64-v8a
[INFO]:    Postbuilding sdl2_mixer for arm64-v8a
[INFO]:    Postbuilding sdl2_ttf for arm64-v8a
[INFO]:    Postbuilding sqlite3 for arm64-v8a
[INFO]:    Postbuilding python3 for arm64-v8a
[INFO]:    Postbuilding sdl2 for arm64-v8a
[INFO]:    Postbuilding setuptools for arm64-v8a
[INFO]:    Postbuilding six for arm64-v8a
[INFO]:    Postbuilding pyjnius for arm64-v8a
[INFO]:    Copying pyjnius java class to classes build dir
[INFO]:    -> directory context /Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/pyjnius-sdl2/arm64-v8a__ndk_target_21/pyjnius
[DEBUG]:   -> running cp -a jnius/src/org /Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/javaclasses/mobidict
[INFO]:    <- directory context /Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/python-for-android
[INFO]:    Postbuilding android for arm64-v8a
[INFO]:    Postbuilding kivy for arm64-v8a
[INFO]:    # Installing pure Python modules
[INFO]:    *** PYTHON PACKAGE / PROJECT INSTALL STAGE FOR ARCH: armeabi-v7a ***
[INFO]:    The requirements (__future__, ast, certifi, collections, cree_sro_syllabics, csv, dataclasses, dawg, enum, functools, hfst_optimized_lookup, itertools, json, kivymd, marshmallow, math, os, pathlib, re, snowballstemmer, sys, threading, typing, typing_extensions, unicodedata, webbrowser) don't have recipes, attempting to install them with pip
[INFO]:    If this fails, it may mean that the module has compiled components and needs a recipe.
[INFO]:    -> directory context /Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build
[DEBUG]:   -> running python3 -m venv venv
[DEBUG]:   	Error: Command '['/Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
Exception in thread background thread for pid 72852:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner
    self.run()
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 910, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/anshdubey/Desktop/altlab-tests/venv/lib/python3.9/site-packages/sh.py", line 1683, in wrap
    fn(*rgs, **kwargs)
  File "/Users/anshdubey/Desktop/altlab-tests/venv/lib/python3.9/site-packages/sh.py", line 2662, in background_thread
    handle_exit_code(exit_code)
  File "/Users/anshdubey/Desktop/altlab-tests/venv/lib/python3.9/site-packages/sh.py", line 2349, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/Users/anshdubey/Desktop/altlab-tests/venv/lib/python3.9/site-packages/sh.py", line 905, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1: 

  RAN: /Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 -m venv venv

  STDOUT:
Error: Command '['/Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.


  STDERR:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 1294, in <module>
    main()
  File "/Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/python-for-android/pythonforandroid/entrypoints.py", line 18, in main
    ToolchainCL()
  File "/Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 728, in __init__
    getattr(self, command)(args)
  File "/Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 151, in wrapper_func
    build_dist_from_args(ctx, dist, args)
  File "/Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 210, in build_dist_from_args
    build_recipes(build_order, python_modules, ctx,
  File "/Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 620, in build_recipes
    run_pymodules_install(
  File "/Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 793, in run_pymodules_install
    shprint(host_python, '-m', 'venv', 'venv')
  File "/Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/python-for-android/pythonforandroid/logger.py", line 167, in shprint
    for line in output:
  File "/Users/anshdubey/Desktop/altlab-tests/venv/lib/python3.9/site-packages/sh.py", line 953, in next
    self.wait()
  File "/Users/anshdubey/Desktop/altlab-tests/venv/lib/python3.9/site-packages/sh.py", line 879, in wait
    self.handle_command_exit_code(exit_code)
  File "/Users/anshdubey/Desktop/altlab-tests/venv/lib/python3.9/site-packages/sh.py", line 905, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_1: 

  RAN: /Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 -m venv venv

  STDOUT:
Error: Command '['/Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.


  STDERR:

# Command failed: /Users/anshdubey/Desktop/altlab-tests/venv/bin/python -m pythonforandroid.toolchain create --dist_name=mobidict --bootstrap=sdl2 --requirements=python3,kivy,kivymd,webbrowser,sqlite3,os,cree_sro_syllabics,snowballstemmer,dawg,marshmallow,hfst_optimized_lookup,typing_extensions,typing,re,sys,collections,itertools,unicodedata,json,__future__,enum,math,threading,csv,pathlib,dataclasses,ast,functools --arch arm64-v8a --arch armeabi-v7a --copy-libs --color=always --storage-dir="/Users/anshdubey/Desktop/altlab-tests/mobidict-android/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a" --ndk-api=21 --ignore-setup-py --debug
# ENVIRONMENT:
#     TERM_PROGRAM = 'Apple_Terminal'
#     ANDROID_HOME = '/Users/anshdubey/Library/Android/sdk'
#     SHELL = '/bin/bash'
#     TERM = 'xterm-256color'
#     TMPDIR = '/var/folders/7w/qb9svk016nd7hk92k08vlkmw0000gn/T/'
#     TERM_PROGRAM_VERSION = '444'
#     OLDPWD = '/Users/anshdubey/Desktop/altlab-tests'
#     TERM_SESSION_ID = '1D81A445-F265-42C1-B9F1-57DF267E6450'
#     USER = 'anshdubey'
#     SSH_AUTH_SOCK = '/private/tmp/com.apple.launchd.J45Dj6aKqD/Listeners'
#     VIRTUAL_ENV = '/Users/anshdubey/Desktop/altlab-tests/venv'
#     PATH = '/Users/anshdubey/.buildozer/android/platform/apache-ant-1.9.4/bin:/Users/anshdubey/Desktop/altlab-tests/venv/bin:/Users/anshdubey/Library/Python/3.8/bin:/usr/local/opt/python@3.8/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Users/anshdubey/anaconda3/bin:/Users/anshdubey/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:/Users/anshdubey/.npm-global/bin:/Users/anshdubey/Library/Android/sdk/emulator:/Users/anshdubey/Library/Android/sdk/tools:/Users/anshdubey/Library/Android/sdk/tools/bin:/Users/anshdubey/Library/Android/sdk/platform-tools'
#     LaunchInstanceID = 'D3CA1B93-FDAE-4736-9EE2-39A92E7D2189'
#     __CFBundleIdentifier = 'com.apple.Terminal'
#     PWD = '/Users/anshdubey/Desktop/altlab-tests/mobidict-android'
#     LANG = 'en_CA.UTF-8'
#     XPC_FLAGS = '0x0'
#     PS1 = '(venv) \h:\W \u\$ '
#     XPC_SERVICE_NAME = '0'
#     SHLVL = '1'
#     HOME = '/Users/anshdubey'
#     LOGNAME = 'anshdubey'
#     DISPLAY = '/private/tmp/com.apple.launchd.lYirTzWfbP/org.xquartz:0'
#     SECURITYSESSIONID = '186b1'
#     _ = '/Users/anshdubey/Desktop/altlab-tests/venv/bin/buildozer'
#     __CF_USER_TEXT_ENCODING = '0x1F5:0x0:0x52'
#     PACKAGES_PATH = '/Users/anshdubey/.buildozer/android/packages'
#     ANDROIDSDK = '/Users/anshdubey/.buildozer/android/platform/android-sdk'
#     ANDROIDNDK = '/Users/anshdubey/.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 am trying to create an apk file from bulldozer in Linux, but every time I receive this error that cython is not found. Although I tried installing it, I found the whole internet but didn’t get the answer.Please help me. I am a beginner
The code:

(kali㉿kali)-[~/Desktop/KivyApp]
└─$ buildozer android debug                                                               1 ⨯
# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Read available permissions from api-versions.xml
# Preparing build
# Check requirements for android
# Run 'dpkg --version'
# Cwd None
Debian 'dpkg' package management program version 1.20.7.1 (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)
# Cython (cython) not found, please install it.
                                                                                              
┌──(kali㉿kali)-[~/Desktop/KivyApp]
└─$ sudo pip uninstall cython              1 ⨯
Found existing installation: Cython 0.29.21
ERROR: Cannot uninstall 'Cython'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.        
                                               
┌──(kali㉿kali)-[~/Desktop/KivyApp]
└─$ sudo apt-get install Cython          100 ⨯
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package Cython
                                                    
┌──(kali㉿kali)-[~/Desktop/KivyApp]
└─$ sudo apt-get install cython          100 ⨯
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package cython is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'cython' has no installation candidate
                                               
┌──(kali㉿kali)-[~/Desktop/KivyApp]
└─$ sudo pip uninstall cython            100 ⨯
Found existing installation: Cython 0.29.21
ERROR: Cannot uninstall 'Cython'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.        

asked Apr 6, 2021 at 17:40

Hirdeyjeet's user avatar

This is because buildozer search cython, but the actual command is cython3. To solve this you have to create a cython command that passes all arguments to cython3.

Write in the terminal

cd /bin/ && sudo gedit cython

in the editor that will pop-up write

cython3 $@

this will pass all the arguments from cython to cython3. Save the file and write in the terminal

sudo chmod 755 cython

to make it executable. To test it simply write

cython

It should have the same output as

cython3

answered Apr 9, 2021 at 14:45

Federico Vidoli's user avatar

0

Safer and simpler way (so you avoid problems with escaping arguments and so on), is to create a soft link

sudo ln -s /usr/bin/cython3 /usr/local/bin/cython    

answered Nov 1, 2021 at 7:39

Andrea Gelmini's user avatar

Tests
Android
iOS
Coverage Status
Backers on Open Collective
Sponsors on Open Collective

Buildozer is a tool for creating application packages easily.

The goal is to have one «buildozer.spec» file in your app directory, describing
your application requirements and settings such as title, icon, included modules
etc. Buildozer will use that spec to create a package for Android, iOS, Windows,
OSX and/or Linux.

Buildozer currently supports packaging for Android via the python-for-android
project, and for iOS via the kivy-ios project. iOS and OSX are still under work.

For Android, buildozer will automatically download and prepare the
build dependencies. For more information, see
Android-SDK-NDK-Information.
Note that only Python 3 is supported.

Note that this tool has nothing to do with the eponymous online build service
buildozer.io.

Installing Buildozer with target Python 3 (default):

  • Install buildozer:

    # via pip (latest stable, recommended)
    # if you use a virtualenv, don't use the `--user` option
    pip install --user buildozer
    
    # latest dev version
    # if you use a virtualenv, don't use the `--user` option
    pip install --user https://github.com/kivy/buildozer/archive/master.zip
    
    # git clone, for working on buildozer
    git clone https://github.com/kivy/buildozer
    cd buildozer
    python setup.py build
    pip install -e .
    
  • Check buildozer is in your path

    `which buildozer`
    # if there is no result, and you installed with --user, add this line at the end of your `~/.bashrc` file.
    export PATH=~/.local/bin/:$PATH
    # and then run
    . ~/.bashrc
    
  • Go into your application directory and run:

    buildozer init
    # edit the buildozer.spec, then
    buildozer android debug deploy run
    

Buildozer Docker image

A Dockerfile is available to use buildozer through a Docker environment.

  • Build with:

    docker build --tag=buildozer .
    
  • Run with:

    docker run --volume "$(pwd)":/home/user/hostcwd buildozer --version
    

Buildozer GitHub action

Use ArtemSBulgakov/buildozer-action@v1
to build your packages automatically on push or pull request.
See full workflow example.

Examples of Buildozer commands

# buildozer target command
buildozer android clean
buildozer android update
buildozer android deploy
buildozer android debug
buildozer android release

# or all in one (compile in debug, deploy on device)
buildozer android debug deploy

# set the default command if nothing set
buildozer setdefault android debug deploy run

Usage

Usage:
    buildozer [--profile <name>] [--verbose] [target] <command>...
    buildozer --version

Available targets:
    android        Android target, based on python-for-android project
    ios            iOS target, based on kivy-ios project

Global commands (without target):
    distclean          Clean the whole Buildozer environment
    help               Show the Buildozer help
    init               Create an initial buildozer.spec in the current directory
    serve              Serve the bin directory via SimpleHTTPServer
    setdefault         Set the default command to run when no arguments are given
    version            Show the Buildozer version

Target commands:
    clean      Clean the target environment
    update     Update the target dependencies
    debug      Build the application in debug mode
    release    Build the application in release mode
    deploy     Deploy the application on the device
    run        Run the application on the device
    serve      Serve the bin directory via SimpleHTTPServer

Target "ios" commands:
    list_identities    List the available identities to use for signing.
    xcode              Open the xcode project.

Target "android" commands:
    adb                Run adb from the Android SDK. Args must come after --, or
                        use --alias to make an alias
    logcat             Show the log from the device
    p4a                Run p4a commands. Args must come after --, or use --alias
                        to make an alias

buildozer.spec

See buildozer/default.spec for an up-to-date spec file.

Default config

You can override the value of any buildozer.spec config token by
setting an appropriate environment variable. These are all of the
form $SECTION_TOKEN, where SECTION is the config file section and
TOKEN is the config token to override. Dots are replaced by
underscores.

For example, here are some config tokens from the [app] section of the
config, along with the environment variables that would override them.

  • title -> $APP_TITLE
  • package.name -> $APP_PACKAGE_NAME
  • p4a.source_dir -> $APP_P4A_SOURCE_DIR

Support

If you need assistance, you can ask for help on our mailing list:

  • User Group : https://groups.google.com/group/kivy-users
  • Email : kivy-users@googlegroups.com

Discord channel:

Server : https://chat.kivy.org
Channel : #support

For debugging on Android, don’t hesitate to use ADB to get logs of your application.

Contributing

We love pull requests and discussing novel ideas. Check out our
contribution guide and
feel free to improve buildozer.

The following mailing list and IRC channel are used exclusively for
discussions about developing the Kivy framework and its sister projects:

  • Dev Group : https://groups.google.com/group/kivy-dev
  • Email : kivy-dev@googlegroups.com

We also have a Discord channel:

  • Server : https://chat.kivy.org
  • Channel : #support

License

Buildozer is released under the terms of the MIT License. Please refer to the
LICENSE file.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]










Change Log

1.5.0

Full Changelog

Fixed bugs:

  • Buildozer Error ValueError: read of closed file #760

Closed issues:

  • kivy app does not support android 10+ #1551
  • Waiting for a response from the server socket #1550
  • orientation = portrait fails #1546
  • When I run the application on my smartphone, the application crashes and gives an error in logcat [WARNING] [Base ] Unknown <android> provider #1545
  • Android application crashes trying to use local storage #1544
  • Buildozer failed to work with NDK 25b (minimum supported by p4a) #1543
  • The Widget MDTopAppBar is not working in Android 12.0 #1542
  • The ‘buildozer==1.4.1.dev0’ distribution was not found and is required by the application #1541
  • anyone knows how to install torch with buildozer compiler? #1538
  • Building Kivy from a GitHub repository #1536
  • Request runtime Permission for BLUETOOTH (NEARBY DEVICES) Android 31 #1534
  • Configure.ac is outdated #1533
  • Problem in psutil Recipe #1532
  • Two errors in pyzmq recipe #1531
  • Buildozer failed to execute the last command!!!!! #1530
  • Error building apk. /usr/bin/python -m pythonforandroidtoolchain apk #1528
  • ERROR While run Buildozer android Debug #1527
  • Buildozer Requires python-for-android version with AAB #1524
  • Error JVM exception occurred: Didn’t find class «com.google.android.gms.auth.api.signin.GoogleSignInOptions» #1523
  • Could not resolve all files for configuration ‘:classpath’. #1522
  • Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x40 but on working app #1521
  • Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x40 in tid 10919 (SDLThread), pid 10882 (org.test.myapp) #1520
  • A problem occurred evaluating root project #1510
  • ModuleNotFoundError: No module named ‘kivy._clock’ #1509
  • Buildozer Raise Error when I try to convert my file… #1507
  • i got this error while trying to create an apk using buildozer #1506
  • # Command failed: [‘/usr/bin/python3’, ‘-m’, ‘pythonforandroid.toolchain’, ‘create’, ‘—dist_name=kivy_example’, ‘—bootstrap=sdl2’, ‘—requirements=python3,kivy==2.0.0rc4,kivy_garden.graph,numpy’, ‘—arch=arm64-v8a’, ‘—arch=armeabi-v7a’, ‘—copy-libs’, ‘—color=always’, ‘—storage-dir=/home/skander/kivy_examples/graphs/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a’, ‘—ndk-api=21’, ‘—ignore-setup-py’, ‘—debug’] #1505
  • Cannot allocate memory #1504
  • SSL: CERTIFICATE_VERIFY_FAILED only on Android #1502
  • Command failed: [‘tar’, ‘xzf’, ‘apache-ant-1.9.4-bin.tar.gz’] #1501
  • error while building liblzma #1498
  • How to add custom requirements in your Colab project with Buildozer? #1496
  • Buildozer requires a p4a version with AAB support. #1493
  • APK Keeps crashing #1488
  • android.presplash_color bug #1487
  • mew error #1486
  • [ERROR] Hostpython3 recently got an error #1485
  • Buildozer issue on MacOS M1 #1484
  • kivy + buildozer one place app name and version conventions #1482
  • [Feature Request] Arm64 ubuntu support #1480
  • ffmpeg is not supported in latest buildozer update. #1474
  • Android : Some .jpg are not displayed, some are. #1471
  • Issue while converting my python file to .aab: ERROR: Trying to release a package that starts with org.test #1469
  • Logs: #1468
  • Issue while converting my python file to .aab: ERROR: Trying to release a package that starts with org.test #1467
  • Buildozer stopped working suddenly #1459
  • hostpython3 download error, ssl error #1441
  • Feature: Make buildozer expose app resources folder. #1397
  • Error while trying to create an APK using Buildozer for Kivy Image processing application. Below is the Error Log. Unable to create APK file #1376
  • During APK build, matplotlib build tries to link against wrong libpng version #1362
  • No such file or directory buildozer debug run #1361
  • Question: How can I change the location of org.testapp on android? #1359
  • docker buildozer Aidl not found, please install it. #1357
  • Building Android app on macOS Catalina gives zlib headers error #1334
  • Has anyone succeeded in converting apk on M1? #1331
  • configure: error: cannot compute sizeof (long double) #1329
  • python==3.9.5 #1325
  • Buildozer fails to execute the last command #1324
  • build is crashing when I am trying to run it via docker #1323
  • build an android app with ffpyplayer #1322
  • Build APK with both x86 and arm libs #1321
  • Build failed on MacMini with M1 Processor while PhaseScriptExecution Script-113D17E2153E3DB5001310A6.sh #1318
  • Build APK Error when I append Numpy OpenCV-python matplotlib to requirements , . #1316
  • Error in compilation #1313
  • org/kivy/android/PythonActivity java.lang.NoClassDefFoundError #1308
  • Issue building a simple app, probably a user error #1299
  • Buildozer.spec add numpy to requirements #1282
  • Libffi not compiling (aarch64/arm64/armv8) #1281
  • android debug process stuck at downloading sdl2 #1273
  • having a problem in installing buildozer for kivy 1.11.1 in Ubuntu 18 #1270
  • Having a problem in installing Buildozer for Kivy in Ubuntu 18.04(Eror:autogen.sh) #1266
  • Can’t build on MacOS 11.0.1 BigSure #1262
  • NDK Missing #1250
  • buildozer crashes while applying fix_numpy_includes.patch for pandas #1244
  • Error when using buildozer android debug #1112
  • Buildozer install doc is very out of date #819

Merged pull requests:

  • Removes broken and unneeded checks, now we can support additional permission syntaxes. #1549 (misl6)
  • Makes orientation option cross-platform and conform to latest python-for-android changes, adds android.manifest.orientation. #1548 (misl6)
  • Update Python versions in test matrix #1540 (misl6)
  • Flake8 does not support inline comments for any of the keys. + Cleanup some ignored errors/warnings #1539 (misl6)
  • Removed (broken) --no-byte-compile-pyo support and added support for --no-byte-compile-python #1525 (misl6)
  • CeDeROM add FreeBSD support 20221014. #1516 (cederom)
  • Add resources #1513 (RobertFlatt)
  • Update Defaults #1512 (RobertFlatt)
  • Update installation.rst #1500 (RobertFlatt)
  • Fix presplash color #1497 (Apacelus)
  • Fixes some E275 — assert is a keyword. #1495 (misl6)
  • Show output during aab support check, as p4a may require the user input #1494 (misl6)
  • Removes six dependency in tests #1475 (misl6)
  • p4a prerequisites install should be done in non-interactive mode during CI builds. #1465 (misl6)
  • Bump version to 1.4.1.dev0 #1464 (misl6)
  • Avoid the usage of shell=True in Popen, which could lead to potential security risks. #1435 (misl6)
  • Add support for p4a option —res_xml #1230 (rambo)

1.4.0 (2022-07-20)

Full Changelog

Closed issues:

  • error #1461
  • error #1460
  • ModuleNotFoundError: No module named ‘_bz2’ #1457
  • java.nio.file.NoSuchFileException #1456
  • kivy app doesnt start on android #1455
  • (WSL) buildozer adb doesn’t recognize usb #1453
  • Error: Command […] returned non-zero exit status 1 #1452
  • Command failed: /home/username/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager —sdk_root=/home/username/.buildozer/android/platform/android-sdk platform-tools #1449
  • gradlew assembly Debug execution error when building apk #1447
  • How to run Python script in background in android? #1446
  • buildozer appclean doesnt work. #1443
  • Flags android.gradle_dependencies && android.add_jars don’t work. #1442
  • ModuleNotFoundError: No module named ‘PIL’ #1440
  • Bulldozer error while running «buildozer -v android debug» #1439
  • started app on three different andoid phones — there is no internet connection on 2 of them #1434
  • Not Able to change the python version under buildozer 1.3.0 #1432
  • ndk r22 invalid #1431
  • error building numpy with bulldozer #1426
  • sh.CommandNotFound: cmake #1424
  • Compile-time name ‘JNIUS_PYTHON3’ not defined #1422
  • Error Building hostpython3 for arm64-v8a with buildozer #1421
  • building for android failed #1420
  • Error «Aidl not found, please install it.» #1416
  • Buildozer Release Signign Issue #1415
  • Unable to run the buildozer command on initial application #1414
  • buildozer -v android debug error,please help me,thank you! #1413
  • Buildozer failed to create android app #1412
  • module encodings found error or something else #1408
  • [ERROR]: Build failed: Requested API target 27 is not available, install it with the SDK android tool. #1404
  • buildozer requirements for firebase-admin Python? #1402
  • I am given the following error, which I believe is due to recent changes for aab support in buildozer: » This buildozer version requires a python-for-android version with AAB (Android App Bundle) support. Please update your pinned version accordingly #1401
  • How to mention Python modules used in Kivy buildozer.spec file? #1400
  • Приложение вылетает при запуске #1399
  • Buildozer deploy failed with python3 -m venv venv command #1389
  • Gradlew Build error for Android on Linux #1371
  • AAB #1353
  • Error creating apk on Macos Big Sur #1345
  • BUILD FAILED #1335

Merged pull requests:

  • Updates default buildozer.spec NDK from 19b to 23b #1462 (misl6)
  • use p4a —add-source instead of manual copy of java files #1450 (tito)
  • fix aar build #1444 (mzakharo)
  • Our self-hosted Apple Silicon runner now has been migrated to actions/runner v2.292.0 which now supports arm64 natively #1438 (misl6)
  • Changes for NDK23 #1427 (HyTurtle)
  • Bump version to 1.4.0.dev0 #1411 (misl6)

1.3.0 (2022-03-13)

Full Changelog

Merged pull requests:

  • Improves iOS CI workflow and adds Apple Silicon M1 runner #1393 (misl6)
  • iOS: force archive iOS destination #1392 (syrykh)
  • simple typo #1390 (Jessime)
  • Bump support-request to v2. Previous integration has been shut down. #1385 (misl6)
  • Add android.add_assets #1382 (RobertFlatt)
  • add the option p4a.extra_args #1369 (antocuni)
  • Fix CI tests for iOS and Android #1365 (misl6)
  • Add aab (Android App Bundle) support #1356 (misl6)
  • Fixes deprecated plistlib API #1347 (meow464)
  • docs: fix a few simple typos #1327 (tshirtman)
  • use HTTPS urls #1319 (obfusk)
  • iOS OTA manifest generation for in-house app distribution #1317 (syrykh)
  • android: adaptive icon/launcher: expose p4a options in buildozer.spec #1312 (SomberNight)
  • Add enable_androidx #1311 (RobertFlatt)
  • Update iOS codesign options #1307 (syrykh)
  • Allow setting custom p4a URL instead of fork #1305 (syrykh)
  • chore : Fixed code quality issues #1300 (powerexploit)
  • added few additional options for android p4a builds #1275 (vesellov)
  • :recycle: Minor check_requirements() refactoring #1274 (AndreMiras)
  • Allow displaying only the logcat of our app. #1272 (tshirtman)
  • fix ndk version check & download link #1271 (obfusk)
  • Let buildozer.spec files pin to a specific p4a commit hash #1269 (xloem)
  • Change android.manifest_placeholders default to None #1265 (misl6)
  • Pass debug loglevel down through to python for android #1260 (xloem)
  • Use develop branch for automated tests #1257 (misl6)
  • Add android.adb_args option #1238 (germn)
  • Add support for p4a —feature option #1229 (rambo)
  • Add option for controlling p4a distutils support, fixes #1224 #1225 (rambo)
  • WSL workaround now accommodates WSL 2 #1220 (stefan-sherwood)
  • Add android.backup_rules parameter to buildozer.spec #1219 (Jorilx)
  • make include_exts etc. properly case-insentitive #1217 (obfusk)
  • Add manifestPlaceholders feature #1212 (misl6)
  • Add support for —presplash-lottie option of p4a #1208 (tshirtman)
  • Fix issue #881: Add android.allow_backup parameter to buildozer.spec #1206 (Jorilx)
  • Add link to GitHub action #1198 (ArtemSBulgakov)
  • Fixes heading for iOS target #1175 (fullbuffer)
  • :white_check_mark: Increases ios target test coverage #1171 (AndreMiras)
  • :white_check_mark: Unit test ios target #1168 (AndreMiras)
  • Expand «~» before every path normalization. #1165 (pakal)
  • :green_apple: Improves iOS support #1160 (AndreMiras)
  • :construction_worker: Moves Android build to dedicated workflow file #1158 (AndreMiras)
  • SafeConfigParser deprecated. #1155 (Julian-O)
  • Declare Buildozer to be Stable #1147 (Julian-O)
  • :fire: Drops garden support #1142 (AndreMiras)
  • :arrow_up: Bumps Ubuntu and OpenJDK versions #1140 (AndreMiras)
  • Post release bump 1.2.0.dev0 #1139 (AndreMiras)
  • Update quickstart.rst for Windows 10 #1124 (arqeco)
  • Update instalation.rst for Windows 10 #1123 (arqeco)

1.2.0 (2020-05-30)

Full Changelog

Merged pull requests:

  • Bumps to latest Cython version #1132 (AndreMiras)
  • Also integration test on macOS #1131 (AndreMiras)
  • Tests android.numeric_version config #1129 (AndreMiras)
  • Refactored the TargetAndroid tests #1127 (pavelsof)
  • Adds p4a —numeric-version support #1126 (AndreMiras)
  • Linter fixes and README.md update #1118 (AndreMiras)
  • Removes Python 2 constructions #1114 (AndreMiras)

1.1.0 (2020-05-18)

Full Changelog

Fixed bugs:

  • [Docker image] SSLError(«Can’t connect to HTTPS URL because the SSL module is not available.») #1096
  • NameError: name ‘raw_input’ is not defined #1070
  • Setup coverage testing #1058
  • AttributeError: ‘function’ object has no attribute ‘glob’ #1044

Closed issues:

  • Pygallary #1109
  • Buildozer compilation ERROR: No matching distribution found for hostpython2 (from -r requirements.txt (line 2)) #1104
  • Circular errors with Java version and Android SDK #1103
  • APK not running on Android 10? #1102
  • Buildozer command fails: Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate #1095
  • Command Failed Error #1092
  • APK Can’t be install (package can’t be install in android) #1091
  • buildozer Install python 3.8.1 #1090
  • i have weak reference error while using python 3.8 #1089
  • buildozer is choosing odd venv, and using a different python? #1080
  • Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding #1076
  • Buildozer just wont compile my app #1074
  • Autoreconf not found? #1072
  • error while buildozer android debug deploy run #1064
  • Syntax error in Kivy and KivyMD dependencies file when using Buildozer to compile KivyMD app #1051
  • Adding CFFI as a Buildozer requirement breaks the Android build #1050
  • Is buildozer compatible with Python 3.7 #1048
  • Could not resolve org.jetbrains.kotlin:kotlin-stdlib-jre8:1.2.0 #1042
  • Error while running buildozer android debug deploy #1038
  • cant able to build apk on linux with python3 #1033
  • Keystore was tampered with, or password was incorrect #1028
  • Windows support to build Android APK #1022
  • How to make third party site-packages ‘requests’ run on Android #1021
  • Crash on buildozer android debug command. Command failed: /usr/bin/python -m pythonforandroid.toolchain #1017
  • Build failed: Couldn’t find executable for CC #1014
  • Cloning Error of python-for-android #1008
  • checking whether the C compiler works… no #1007
  • Kivy :How to ask for storage permission when app starts #1004
  • Buildozer :No module named ‘numpy.core._multiarray_umath’ #1002
  • Kivy app Crashes while import openpyxl #1001
  • Warning when i run «buildozer -v android debug» #982
  • sdkmanager is notinstalled #927

Merged pull requests:

  • Update README.md #1111 (tshirtman)
  • Fixes Docker apt cache missed #1107 (AndreMiras)
  • Adds libssl-dev to the install dependencies #1106 (AndreMiras)
  • Automatically publish to PyPI upon tagging #1105 (AndreMiras)
  • Fix punctuation and typo in README.md #1101 (hematogender)
  • Build integration test #1100 (AndreMiras)
  • Fixes missing libssl-dev dependency #1099 (AndreMiras)
  • Drops Python 2 support #1094 (AndreMiras)
  • Checks SDK, NDK and p4a get downloaded on first run #1093 (AndreMiras)
  • Integration testing #1083 (AndreMiras)
  • Also tests against macOS platform #1078 (AndreMiras)
  • Fix NameError with Python 3 and iOS target #1071 (lerela)
  • Unit tests TargetAndroid.build_package() #1069 (AndreMiras)
  • Dedicated Docker build/run job #1068 (AndreMiras)
  • F841: local variable is assigned to but never used #1066 (AndreMiras)
  • PEP8 organisation and fixes #1065 (AndreMiras)
  • Fixes coveralls.io on pull requests #1063 (AndreMiras)
  • Coveralls TOKEN is only available on branch master #1062 (AndreMiras)
  • Starts unit testing buildozer/targets/android.py #1061 (AndreMiras)
  • Setup coverage testing #1060 (AndreMiras)
  • Fix Dockerfile dependencies #1053 (Sirfanas)
  • Updates default buildozer.spec NDK from 17c to 19b #1041 (AndreMiras)
  • Fix config typo in default.spec #1026 (touilleMan)
  • Android gradle build: fix apk name #1025 (SomberNight)

1.0 (2019-12-22)

Full Changelog

Fixed bugs:

  • Accept license terms prompt is not visible #916
  • Unable to build release. File «/usr/lib/python3.6/shutil.py», line 96, in copyfile with open(src, ‘rb’) as fsrc: IOError: [Errno 2] No such file or directory: #851
  • error: cannot find -lpython3.7 #842
  • android.accept_sdk_license may misbehave #816
  • Python3 error with pexpect #221

Closed issues:

  • Sup Req : Buildozer debug does not complete — Error threading.py, sh.py, etc.. #1000
  • Buildozer failed to execute the last command #999
  • Android fullscreen mode: cannot hide status bar! #989
  • buildozer uses wrong python version and disrespects requirement versions #988
  • The version of Kivy installed on this system is too old. #987
  • Failed to download any source lists! #986
  • Aidl cannot be executed error buildozer #984
  • buildozer debug error «[WARNING]» when i run buildozer andriod debug #980
  • Building kivy app with python3 requirement gives «No compiled python is present to zip, skipping.» warning and «Unable to import kivy._clock. Have you perhaps forgotten to compile kivy? …» error when run on android device. #977
  • Java And Python-for-android toolchain errors #975
  • buildozer + python3 #973
  • Error while running «.buildozer…/native-build/python -OO -m compileall -b -f /…/app #972
  • buildozer fails with kivymd link #968
  • ndk_platform doesn’t exist: /home/rr/android-ndk-r20/platforms/android-20/arch-arm #966
  • Paused at Installing/updating SDK platform tools if necessary #965
  • java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema #962
  • please add aidl into Dockerfile #960
  • Missing _ctypes module #955
  • Kivy-Buildozer release version doesnt upload google store #953
  • buildozer using wrong kivy version #943
  • buildozer ndk-api=21 error #942
  • app crash #939
  • ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/java-8-oracle #929
  • no-issue #926
  • can’t find file to patch toggle_jpg_png_webp.patch #921
  • No matching distribution found for io #915
  • Error: No matching distribution found for io(from -r requirements.txt (line 5)) #914
  • I’m also experiencing the same issue, using macOS 10.14.3 and no Docker — just plain Buildozer from the PyPi repo. What is the recommended course of action to fix this? #913
  • app crash #911
  • warnings while building apk using buildozer #910
  • buildozer error please help me!! #906
  • My application does not open in android but if it works in geany, help please. #903
  • [Docker image] Can’t compile apk: /bin/tar … «Cannot utime: Operation not permitted» #902
  • Fails to call numpy fft on android #899
  • Command failed: /usr/bin/python3 -m pythonforandroid.toolchain #898
  • error: C compiler cannot create executables #897
  • stopped at «Installing/updating SDK platform tools if necessary» #896
  • ValueError: Tried to access ndk_ver but it has not been set — this should not happen, something went wrong! #893
  • Buildozer not installing from custom source folders #892
  • Error with build requirements PIL (Python 3) #890
  • rocker plants.cvs -an active -r -p rco.png #889
  • rocker plants.cvs -an active -r -p rco.png #888
  • rocker plants.cvs -an active -r -p rco.png #887
  • rocker plants.cvs -an active -r -p rco.png #886
  • rocker plants.cvs -an active -r -p rco.png #885
  • host=arm-linux-androideabi #884
  • Buildozer has attribute errors and will not run #883
  • buildozer on osx not working #879
  • Android API Issue #877
  • What is the way to add folders and files? #875
  • Buildozer Error #874
  • Problem with «Unpacking sdl2_image» and «Parent module ‘pythonforandroid.recipes’ not found» #872
  • buildozer android debug deploy is stuck #870
  • running autoreconf -vif #866
  • Exception in thread «main» java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema #862
  • Can not build x86 APK file #861
  • But then a lot more issues, deep in the weeds now. #858
  • Create tests for PR fix bug when logcat value which cannot be decode to utf-8 #857
  • Can’t Cythonize pyjnius: TypeError: can’t pickle Argument objects #850
  • buildozer -h complains about NoneType target #849
  • Building failes at compiling openssl[armeabi-v7a] #841
  • Applying patches for libffi[armeabi-v7a] #840
  • Errors while running buildozer android debug deploy #832
  • «Command failed» when running «buildozer android debug deploy run» #829
  • Build Python3 for Android with Azure-keyvault and merest #828
  • Outdated Android NDK download URL in Kivy Virtual Machine #827
  • App crashes on startup #826
  • I found the origin of the problem mentioned in issue #694 (Aidl not found) #824
  • download() is not CI log friendly #823
  • Application stuck in portrait mode #820
  • Orientation landscape when set to portrait #818
  • Certain python requirements fail due to _ctypes #815
  • Running buildozer help crashes #813
  • [Buildozer 0.40.dev0, Buildozer 0.39] AttributeError: ‘Buildozer’ object has no attribute ‘translate_target’ #812
  • Version number failing to be added to apk #810
  • Virtual machine out of date #764
  • Docker doesn’t build #751
  • Buildozer exit code on recipe fail #674
  • not able to release apk in release mode — build failed #363
  • Issue with NDK r11b #308
  • Feature: Create a compat.py for correct PY3 support and implement it #300
  • Curl missing in KivyVM #296
  • Virtual machine image could have better support for international keyboards #295
  • Virtual machine image does not have enough disk space #294
  • Not quite an issue, just some dependency stuff #247
  • # Command failed: ./distribute.sh -m «kivy» -d «stapp» #204
  • Command ./distribute.sh failed — no buildozer.spec found when it exists #203
  • buildozer -v android debug : Compile fails at fcntlmodule.c #196
  • Build errors on OSX 10.10 (for android) #165
  • Feature Request: Vagrantfile #154

Merged pull requests:

  • Feature GitHub actions #1005 (tito)
  • Fixes test_p4a_recommended_android_ndk_found() mocking #983 (AndreMiras)
  • Fixes packaging for current p4a develop branch #978 (misl6)
  • Updates install instructions and troubleshooting #976 (AndreMiras)
  • fix: show output of sdk update if auto_accept_license is false #970 (tshirtman)
  • Add libs only for current arch #969 (misl6)
  • Rename final apk with arch in the name #967 (tito)
  • Code improvements around NDK download #961 (inclement)
  • Separate build per android.arch #957 (tito)
  • spec file: cast paths in source.exclude_dirs to lowercase #956 (SomberNight)
  • added cmake to requirements #950 (mcroni)
  • Add ability to get p4a’s recommended android’s NDK version #947 (opacam)
  • New feature: allow to use a p4a fork #940 (opacam)
  • Minor linter fix #937 (AndreMiras)
  • Update installation.rst #936 (yairlempert)
  • clarify overriding of config tokens #935 (brentpicasso)
  • Extend add_libs to arm64-v8a #934 (misl6)
  • Doc/installation updates #932 (tshirtman)
  • customizability options #919 (zworkb)
  • disable orientation and window option for service_only bootstrap #912 (zworkb)
  • Unit test unicode decode on command output, fixes #857 #905 (AndreMiras)
  • Made sure to print all lines of license question by always flushing #904 (inclement)
  • Exits with error code on build exception, fixes #674 #882 (AndreMiras)
  • Download Apache ANT at the same path as the buildozer.spec android.ant_path option #860 (robertpro)
  • Fix for bug when logcat value which cannot be decode to utf-8 #856 (Draqun)
  • Changes default log level to debug (2) #855 (AndreMiras)
  • Handles unknown command/target error gracefully, closes #812 #853 (AndreMiras)
  • Updates system requirements needed to build recipes #852 (AndreMiras)
  • Various Dockerfile improvements #848 (AndreMiras)
  • Support p4a uses-library argument #846 (pax0r)
  • Removed reference to Kivy VM #845 (Megalex42)
  • Removes extra log_env() call #843 (AndreMiras)
  • add missing android arch to spec file #839 (OptimusGREEN)
  • feat: make unzip quiet #836 (mkg20001)
  • fix: drop release-unsigned from release output path #835 (mkg20001)
  • Add ci_mode to toggle download progress #833 (mkg20001)
  • Unit test logger #831 (AndreMiras)
  • refactor auto accept license #822 (AndreMiras)
  • Unit tests buildozer —help command, refs #813 #821 (AndreMiras)
  • Use getbooldefault() for boolean, fixes #806 #817 (AndreMiras)
  • Update the issue template #814 (AndreMiras)
  • Show envs when run2 #802 (maho)

0.39 (2019-02-04)

Full Changelog

0.38 (2019-02-03)

Full Changelog

Fixed bugs:

  • TypeError: read() takes exactly 2 arguments (3 given) #793
  • TypeError: read() takes exactly 2 arguments (3 given) #792
  • AttributeError: ‘str’ object has no attribute ‘decode’ #756

Closed issues:

  • Openssl compilation fails, ‘__atomic’ undefined #800
  • —ndk-api appears twice #798
  • Error in toolchain.py and argument —ndk-api 9 #797
  • Target ndk-api is 19, but the **python3 recipe supports only 21** #796
  • Add support for —frameworks on iOS #790
  • Hello World impossible: checking whether the C compiler works… no #785
  • Buildozer 0.37 UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc2 #782
  • APK Crashes on start with no obvious cause #779
  • Outdated Android NDK download URL in Kivy Virtual Machine #778
  • Buildozer «gradlew failed!» #777
  • Conflicting documentation Python2 versus Python3 #774
  • No valid —ndk-api received, using the default of 0 = min(android-api=0, default ndk-api=21) #772
  • default.spec specifies python3 but also incompatible NDK and API settings #770
  • Error: minsdk argument does not match the api that is compiled against #768
  • Need to support sensorLandscape #762
  • minsdk argument does not match the api that is compiled against #761
  • Need to be able to specify the NDK API target #758
  • Buildozer cannot import name pythran_is_numpy_func_supported #753
  • Python3 recipe not building, error with self.ctx.python_recipe #752
  • compile error #744
  • APK build failed «ndk_platform doesn’t exist» (Python3.6; android.api = 27) #742
  • Logo Design Proposal #734
  • android clean not working (FileNotFoundError: [Errno 2] No such file or directory) #732
  • Can’t Make an APK via Buildozer #712
  • App build Failed #707
  • ERROR: /home/kivy/.buildozer/android/platform/apache-ant-1.9.4/bin/ant failed! #706
  • APK using txt file in main.py issue. #704
  • «Copying APK» fails because of wrong path used #699
  • Cannot build #697
  • Fail on build #692
  • Cannot build «Hello World» APK #687
  • Error when building an android APK using Kivy #684
  • can’t get audio stream from a server #683
  • Continuous integration testing #679
  • Post build fails because copying built apk fails #671
  • Buildozer can’t compile for Android on Manjaro Linux #670
  • Icon/Logo Proposal #669
  • Buildozer cant compile platform Ubuntu 16.04 #668
  • Buildozer gets stuck at unpacking kivy #667
  • Kivy window #666
  • Failed building wheel for pyaudio #665
  • Buildozer compilation gets stuck #663
  • IOError: [Errno 2] No such file or directory: u’/home/samurai-girl/python2/.buildozer/android/platform/build/dists/test/build/outputs/apk/test-debug.apk’ #662
  • Unable to build _ctypes.so #660
  • error while packaging for android on macOS #659
  • Command failed: /usr/bin/python2 -m pythonforandroid.toolchain #658
  • Cannot build apk with buildozer android debug #656
  • How to correctly build an APK package with Python 3? #655
  • SDK does not have any Build Tools installed. #652
  • Error building Kivy app with opencv(and numpy) — raise CommandNotFoundError(path) #651
  • FileNotFoundError: [Errno 2] #649
  • The python3crystax recipe can only be built when using the CrystaX NDK. Exiting. #648
  • build apk : error can not find the build/output folder #647
  • help me building cryptography #646
  • sslv3 alert handshake failure on Addroid #643
  • Opening Android SDK Manager to download «Google Repository» and «Google Play services» #642
  • kivy python host failed #641
  • python.host failed #640
  • Kivy Crashing #638
  • .so lib files missing debug symbols #637
  • Kivy app doesn’t run #634
  • «* daemon not running. starting it now on port 5037 * * daemon started successfully *» #633
  • FileNotFoundError: [Errno 2] No such file or directory: ‘/home/alex/Documents/pengame/.buildozer/android/platform/build/dists/helloworldapp/build/outputs/apk/helloworldapp-debug.apk’ #632
  • Compiling Kivy app to apk fails with a pip error #631
  • ERROR: /home/ubuntu/.buildozer/android/platform/apache-ant-1.9.4/bin/ant failed! #625
  • Build error when building Kivy app #624
  • buildozer debug is not running this error is showing #622
  • unexpected e_machine: 3 #621
  • buildozer matplotlib #617
  • IOError: [Errno 2] No such file or directory: u’/Users/gauravgupta/kivy/.buildozer/android/platform/build/dists/myellipse/build/outputs/apk/myellipse-debug.apk’ #613
  • Build failing in final ANT stage #610
  • Cannot build apk #606
  • Installing buildozer for Python 3 failed #604
  • FileNotFoundError at end of build when copying APK file. #602
  • BUILD FAILED #601
  • Error with buildozer #591
  • ImportError: No module named Cython.Distutils While running buildozer android debug #587
  • python 2.7 compile with NDK 15c #584
  • Problem upgrade to newest version #583
  • Simple Kivy test app can’t compile to android apk #581
  • Apple Watch Support #574
  • Skip error or better error message: requirements with extra comma #562
  • failed to build numpy on Mac #557
  • p4a.source_dir set and android clean —> crash #556
  • Kivy python android build error? #555
  • python3 import networkx needs lib2to3 but cannot be imported #554
  • buildozer android debug deploy run ERROR #550
  • App Crashes #541
  • Requirements: Requests, Ssl #539
  • Error: Aidl cannot be executed #532
  • Kivy and Beautifulsoup with Buildozer fail on Python 3. #529
  • I’m having similar problem #528
  • Awkward error while building apk #526
  • The «android» command is deprecated #519
  • Kivy: Permission denied (when running buildozer android on Mac OS X) #517
  • Extraction of «Kivy2.7z» failed #516
  • buildozer still download ndk from wrong path #506
  • android-new landscape error on restart #482
  • Add possibility to choose pip version for modules in the requirements section #475
  • Bulldozer android_new fails when ffmpeg is added to the requirements: No C Compiler found! #463
  • CalledProcessError: Command ‘[‘python’, ‘package_app.py’, ‘—displayname=Music Favorites’]’ returned non-zero exit status 1 #448
  • [Errno 13] Permission denied; Buildozer on Flask Server #445
  • Error while compiling a kivy app for android (undefined reference to ‘SDL_main’ collect2: error: ld returned 1 exit status) #438
  • AsyncImage not loading in .apk #433
  • Big Bug, ORMs cant find sqlite3.so #426
  • cp: cannot stat ‘~/.buildozer/android/platform/python-for-android/src/libs/armeabi/*.so’: No such file or directory #422
  • using android_new causes missing packages errors #420
  • Buildozer fails with «Command ‘[‘ant’, ‘debug’]’ returned non-zero exit status 1» #419
  • Buildozer fails to build when ffmpeg is added #418
  • Build on arm64 android #412
  • Building with «android_new» target fails due to missing architecture on pythonforandroid.toolchain apk #407
  • Command ‘[‘ant’, ‘debug’]’ returned non-zero exit status 1 when building PIL library #406
  • Android, Pygame backend: buildozer android debug deploy run tries to launch wrong Activity #401
  • AttributeError: ‘NoneType’ object has no attribute ‘splitlines’ #400
  • Pyzmq import fails on Android with python2 / kivy 1.9 / cython 0.23 #397
  • Python 3: # Aidl cannot be executed AttributeError: ‘module’ object has no attribute ‘maxint’ #392
  • subprocess.CalledProcessError #391
  • python.host could not find platform independent libraries #390
  • Buildozer android_new fails #388
  • toolchain.py: error: argument —private is required #384
  • Android fails on running Kivy apk #381
  • ImportError: No module named plyer with android_new as a target #379
  • buildozer -v android debug runs into problem #376
  • subprocess.CalledProcessError #372
  • Can’t install Pillow , return errors #371
  • failed to load ctypes as android app built on OSX #368
  • old_toolchain not shows images #367
  • Buildozer deployment dlopen failed libSDL2.so has unexpected e_machine: 40 #365
  • Rebuild only selected packages #226

Merged pull requests:

  • Updated README for Python 3 #809 (inclement)
  • Update README.md to add opencollective #808 (tito)
  • Made buildozer respect user sdk dir when accessing sdkmanager #807 (inclement)
  • Removed android_old and updated SDK management to work with current SDK #806 (inclement)
  • Removed redundant —ndk-api argument and fixed default value #805 (inclement)
  • Update for p4a master #803 (inclement)
  • Unit tests read spec file, refs #793 #799 (AndreMiras)
  • Support the —add-frameworks flag in kivy-ios #795 (hackalog)
  • Introduces CI and tox testing, fixes #679 #794 (AndreMiras)
  • Fix python 2 crash when reading config file #791 (etc0de)
  • Handle buildozer.spec with unicode chars #789 (guysoft)
  • Specify GitHub branches in buildozer.spec #787 (hackalog)
  • Fixes minor comment typo introduced in #759 #786 (AndreMiras)
  • Docker from current git #775 (maho)
  • Fix output directory for gradle #766 (wo01)
  • support sensorLandscape mode. resolves #762 #763 (brentpicasso)
  • allow specifying of Android NDK API. Resolves #758 #759 (brentpicasso)
  • Update cython version from the docs #757 (AndreMiras)
  • fix android sdk/ndk information link #755 (avere001)
  • this allows to build with ndk 17c (and other recent-ish ones) #754 (tshirtman)
  • fix ndk URLs #747 (zworkb)

0.36 (2018-11-21)

Full Changelog

Fixed bugs:

  • Error in debug, install platform, Indexerror. #731

Closed issues:

  • Buildozer looking for nonexistent script #749
  • Can not build APK file with buildozer. UnicodeDecodeError #746
  • CrystaX no longer the preferred NDK for Python3 #745
  • AKP build fails (android.py line 524) #738
  • Buildozer 0.35 with IndexError: list index out of range on Mac OS #737
  • cannot build pyjnius for armeabi-v7a #735
  • I can’t package my app the way i always did. #733
  • OSError: [Errno 18] Invalid cross-device link #644

Merged pull requests:

  • Correctly write out a sub-process’s stdout when using Python 3. #743 (dbrnz)
  • Explicitly run pip3 when using Python 3 #741 (dbrnz)
  • workaround for working in WSL #740 (tshirtman)
  • Allow for install_reqs line having whitespace at start. #736 (dbrnz)
  • Fix Support config file name #730 (dessant)

0.35 (2018-10-24)

Full Changelog

Fixed bugs:

  • Buildozer should not regex/hack install_reqs #722

Closed issues:

  • Command failed: /usr/bin/python -m pythonforandroid.toolchain create… #727
  • buildozer fails at installing platfrom #726
  • Unable to build APK #725
  • Buildozer APK not working: OS X, Docker, or fresh Ubuntu 16.04 #723
  • gcc Segmentation Fault #720
  • Error debugging for android #719
  • ndk_platform doesn’t exist (when switching to API = 28) #717
  • FileNotFoundError: [Errno 2] (SOLVED) — It was Encoding Error #715
  • SDL_JAVA_PACKAGE_PATH error? #714
  • Python3Crystax instructions in README #710
  • Bug or support request? #708
  • build requirement failed #701
  • I am using Virtual Machine provided in the official kivy website for building android APK, this is the part of log file #696
  • App minimizes instantly after launching. #695
  • Aidl not detected #694
  • python 3 ssl #690
  • Is there something like multiprocessing? #685
  • Kivy in pyCharm #682
  • Toolchain error. Help,please! #678
  • virtual machine does not compile apk Fails with errors #677
  • An error in Buildozer Apk (Python Kivy) Help PLZ! #676
  • App crashes on android but works fine in idle window using buildozer #675
  • Pyjnius exception Adbuddiz class not found #661
  • Buildozer failed to execute the last command #/usr/bin/python3 -m pythonforandroid.toolchain create —dist_name=blueb —bootstrap=sdl2 —requirements=python3crystax,kivy —arch x86 —copy-libs —color=always —storage-dir=/home/jp/Desktop/BlueB/.buildozer/android/platform/build #654
  • java.lang.ClassNotFoundException: sun.misc.BASE64Encoder #639
  • IOError: [Errno 2] No such file or directory: #636
  • App crashes with aws boto3 #635
  • APK Immediately Closes After Opening in Debug, Release, and Zipaligned & Signed Versions #629
  • Using Python/Buildozer to compile Kivy for Android #628
  • «configure: error: C compiler cannot create executables See `config.log’ for more details» (# Command failed: ./distribute.sh -m «kivy» -d «pollygot») #627
  • «OSError: [Errno 30] Read-only file system» (# Command failed: virtualenv —python=python2.7 ./venv) #626
  • Java compiling issue: buildozer uses obsolete source value 1.5 #619
  • Cloning into ‘python-for-android-new-toolchain’… #618
  • Failed to build application: ‘WindowInfoX11’ is not a type identifier #616
  • Sudo issue[closed] #615
  • buildozer-vm-2 installed from scratch ABENDS #611
  • ASCII decode problem #608
  • error: could not delete ‘build/lib.linux-x86_64-2.7/buildozer/targets/android.py’: Permission denied #607
  • APK Build Failing with Python 3.6 #605
  • IOError: [Errno 2] No such file or directory: u’/home/kivy/buildozer/.buildozer/android/platform/build/… #603
  • Feature Request: Dockerfile or image in dockerhub #589
  • Buildozer debug error. #545

Merged pull requests:

  • Fix #645 #729 (tito)
  • Enable Support app #728 (dessant)
  • Updates p4a deps parsing #724 (AndreMiras)
  • Improved error handling if p4a setup.py can’t be read #721 (inclement)
  • Various spelling corrections #718 (Zen-CODE)
  • Updates Python 3 install instructions, fixes #710 #711 (AndreMiras)
  • Remove obsolete sh package dependency #705 (Cheaterman)
  • Changes how is_gradle_build is detected. #700 (rammie)
  • Cleans installation docs #689 (AndreMiras)
  • Adds issue template with basic required info #688 (AndreMiras)
  • buildozer Dockerfile, fixes #589 #681 (AndreMiras)
  • Removes few unused variables #680 (AndreMiras)
  • Fixed a typo pointed out by AndreMiras #664 (inclement)
  • Updates installation.rst with Ubuntu 18.04 instructions #657 (AndreMiras)
  • fix prerelease version #653 (marceloneil)
  • allow setting launchMode for the main activity in the manifest #650 (SomberNight)
  • Fixes Invalid cross-device link #645 (robertpro)
  • Quote —storage-dir value #630 (ghost)
  • Allow adding Java activities to the manifest #612 (bauerj)
  • add comment re p4a.port in default.spec #600 (replabrobin)
  • Spelling #592 (jsoref)

0.34 (2017-12-15)

Full Changelog

Closed issues:

  • IOERROR invalid directory #599
  • Buidozer 0.33 AttributeError: ‘module’ object has no attribute ‘directory’ #598
  • Issu with buildozer packing #596
  • Gradle: path may not be null or empty string. path=’null’ #595
  • ERROR: Trying to release a package that starts with org.test; what can I do? #593
  • App crash with python3 #590
  • Problem running buildozer android debug first time #586
  • buildozer download some content failed #585
  • complie platform failed #580
  • Module OS — buildozer.spec #579
  • Buildozer doesn’t compile app with cryptography requirement #578
  • Buildozer x psycopg2 #575
  • Problem with Android API 23 #573
  • App crashing on startup- ImportError: dlopen failed: _imaging.so is 64-bit #568
  • Buildozer issue with latest Xcode/macOS #566
  • Requests SSL error #565
  • buildozer failed for Broken toolchain when building numpy with python.host #564
  • Encountered a bad program behavior #563
  • error at using pycypto in the requirements #558
  • Websocket error: SSL not available. #552
  • «crystax_python does not exist» with python3crystax #551
  • App crashes after build #549
  • Installing CyLP on windows #548
  • Service notification launch intent causes app crash #547
  • Application crashes on start #546
  • New android target is unable to produce a python 4 android service #543
  • Buildozer Build Error #538
  • # Aidl not found, please install it. #537
  • Error compiling Cython file on Ubuntu 14.0.4 with python 2.7 and 3.4/5 #536
  • Failed compilation on ubuntu with python 2.7 configure: error: C compiler cannot create executables #535
  • Remove app permissions added by default #534
  • Buildozer error while packaging #531
  • Buildozer failing to pack .apk #530
  • toolchain fails to recognize option —sdk #524
  • # Command failed: /usr/bin/python -m pythonforandroid.toolchain create —dist_name=myapp —bootstrap=sdl2 —requirements=kivy —arch armeabi-v7a —copy-libs —color=always —storage-dir=/home/abhipso/thembapp/.buildozer/android/platform/build #521
  • apk way too large — 800mb #520
  • [features] Snapcraft implementation #514
  • Possibility of building in kivy virtual machine all locally #513
  • Python3(crystax ndk) builds broken #511
  • build fails in virtualenv #509
  • password for the virtual machine? #507
  • Failed to build APK with python 3.6 : [sh.CommandNotFound: python3.5] #504
  • Don’t Unpacking opencv for armeabi-v7a #503
  • Fails to package app on OSX Sierra 10.12.4 (hdiutil: attach failed — image not recognized keka) #494
  • File missing building release APK #469
  • Building APK using Buildozer/Kivy #459
  • buildozer failed to build apk: subprocess.CalledProcessError: Command ‘[‘ant’, ‘debug’]’ returned non-zero exit status 1 #373
  • AttributeError: ‘Context’ object has no attribute ‘hostpython’ in recipe #361
  • Cant compile apk with sqlite3 (using python3 crystax) #359

Merged pull requests:

  • Imported os to fix ImportError #594 (inclement)
  • add p4a.port config option; to allow specifiying webview port #588 (replabrobin)
  • Fix Py3 utf-8 encode error #582 (Zen-CODE)
  • Fixes p4a.branch comment #577 (AndreMiras)
  • Fix old toolchain index error #576 (Zen-CODE)
  • Some fixes in old android target #572 (rnixx)
  • Removed —sdk argument for p4a #571 (inclement)
  • Update specifications.rst #560 (crajun)
  • Changed p4a directory name for current toolchain #527 (inclement)
  • Update android.py, updated recreate the project.properties section #525 (mokhoo)
  • Fix unicode coding error in android build target #518 (jamalex)
  • Add 404 status code handling on kivy download #508 (SecretObsession)
  • Use dmg instead of 7z #505 (shivan1b)

0.33 (2017-05-15)

Full Changelog

Fixed bugs:

  • Installation of python for android is missing dependencies #501

Closed issues:

  • Break buildozer if the user try to release a version with «org.test» as a domain #500
  • Migrate p4a options to its own subkey #499
  • Use stable branch from python-for-android #498
  • Migrate android to android_new, and add android_old #497
  • sh.CommandNotFound: cmake #496
  • Need Help Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 4579 (SDLThread) #495
  • Buildozer APK Cannot LAUNCH #493
  • Buildozer Error #492
  • android_new target hardcodes python2 support for p4a #491
  • android.arch ignored #488
  • fail to install distribute #486
  • sh.py raise a exception and fail to build #485
  • some functionality lost when debugged with android_new command #481
  • Problem when deploy to android device #480
  • dlopen failed: python2.7/site-packages/grpc/_cython/cygrpc.so not 32-bit: 2 #479
  • Cannot build APK with python3crystax and flask — conflicting dependencies #477
  • Buildozer can’t download NDK #474
  • websocket-client «SSL not available.» #473
  • Using Cython with Kivy-iOS and Buildozer #472
  • android.requirements does not merge with app.requirements #471
  • buildozer fails to find Android SDK #468
  • Crash of APK on start #467
  • App not launching #461
  • sqlite3 not working with android_new #457
  • how to set path for p4a #454
  • TypeError: write() argument 1 must be unicode, not str #452
  • New toolchain — lxml included but not able to import #451
  • sqlite3 with python2.7 and buildozer 0.33dev and new toolchain not working #450
  • Update the Virtual Machine @ https://kivy.org/#download #449
  • “No module named setuptools” after installing setuptools #444
  • how to add —arch=armeabi-v7a to buildozer spec #443
  • buildozer android debug fails with jinja2.exceptions.TemplateNotFound: build.xml #442
  • buildozer.spec — requirements — kivy == master #440
  • Buildozer can’t find zlib #437
  • Expose kivy download source? #435
  • compiling crash #431
  • Buildozer unable to make apk #430
  • Crash APK on start #429
  • More like a noob question #428
  • keka failed to download (OS X El Capitan) #427
  • Buildozer fails with pure python library pint #425
  • Invalid argument to arm-linux-androideabi-gcc #424
  • dlopen failed: _clock.so is 64-bit instead of 32-bit #423
  • how to solve the build error for «java»? #421
  • Problems in patching files during building for android_new #416
  • Buildozer doesn’t work with multiple first-class directories #415
  • Buildozer suddenly not working, Linux, Python 2.7 (build.xml: Failed to find version-tag string) #414
  • Buildozer not finding aidl #413
  • buildozer android created apk fails if application source kept in multiple files #411
  • Python 3 unicode print () / copy to clipboard crashes app on Android #404
  • checking whether the C compiler works… no #402
  • configure: error: C compiler cannot create executables #395
  • ConfigParser.NoOptionError: No option ‘p4a.local_recipes’ in section: ‘app’ (android_new) #394
  • Google has changed the type of archive the new NDK #393
  • Why does buildozer build and pull python for android from old_toolchain branch ? #389
  • buildozer android_new does not show the presplash #387
  • Error when using buildozer android_new with python3crystax #386
  • Command failed: tar xzf android-sdk_r20-linux.tgz #383
  • When will you add requests lib to recipes? #382
  • Presplash does not work with «android_new» as target. #380
  • Build for Android is Inconsistent with the Linux Version #378
  • [question] What are the supported OS ? #369
  • AttributeError: ‘AnsiCodes’ object has no attribute ‘LIGHTBLUE_EX’ #366
  • splash image not hide after kivy loaded #364
  • app always crash in android #360
  • Plyer not available in buildozer android_new #358
  • Runs empty directory instead of binary (android_new) #357
  • App built with buildozer does not open on android #356
  • Error when running buildozer android_new debug #354
  • ios list_identities returns no identities #353
  • buildozer not working #350
  • error: Cython does not appear to be installed #349
  • AttributeError: ‘Context’ object has no attribute ‘hostpython’ #347
  • osx packaging results in venv error #345
  • Requirement example requirements = kivy,requests fails #344
  • Unavailability of important packages #343
  • no way to change bootstrap #341
  • Apk built with buildozer and multiple python file crashes #331
  • Please upgrade the documentation #255
  • Buildozer doesn’t recognize «profile» option anymore #254
  • Try to build with caldav requirement fails #248
  • Trouble building for older android versions #240
  • removing old apk file seems to fail before installing the new one #238
  • Build fails due to python-distribute.org being down #200
  • I am struggling with building an apk #153
  • fresh android sdk install requires sdk update #151
  • FYI — Ubuntu 14.04 Necessary Java Path Adjustment #141
  • Cannot compile iri2uri.py in httplib2 #135
  • can’t add django to requirement #130
  • add an ssh target #1

Merged pull requests:

  • close #452 as suggested by SpotlightKid #489 (pat1)
  • Update README.rst #487 (matletix)
  • Made buildozer run p4a using the current sys.executable #484 (inclement)
  • ios: refactor deprecated PackageApplication command #483 (kived)
  • android_new: change skip_update to skip all updates #465 (ZingBallyhoo)
  • android_new: add «android.arch» config option #458 (ZingBallyhoo)
  • Fix Py3 Incompatable str + bytes issue. #456 (FeralBytes)
  • spec file: dont use fullscreen by default #447 (rafalo1333)
  • spec file: use portrait orientation by default #446 (rafalo1333)
  • Add presplash background color support for android_new toolchain #436 (rnixx)
  • Fix file_matches to never return None #432 (inclement)
  • Fixed 64 bit detection (it failed under python3) #409 (inclement)
  • Added p4a.local_recipes to default.spec and handled its absence #405 (inclement)
  • Adding README.rst entries for how to use buildozer with python3 #403 (andyDoucette)
  • Update installation.rst (Ubuntu16.04) #399 (FermiParadox)
  • Update quickstart.rst #398 (FermiParadox)
  • Add p4a.local_recipes to buildozer.spec to specify a local recipe dir… #385 (cidermole)
  • Always pass required args to p4a in android_new #375 (inclement)
  • Changed p4a command order to work with argparse #374 (inclement)
  • buildozer has no attribute builddir #351 (nilutz)
  • throw error early if running in venv #346 (kived)
  • allow selection of bootstrap for android_new #342 (kived)
  • bump version to 0.33dev #340 (kived)
  • trying to fix Kivy install for OS X builds #316 (derPinguin)
  • update installation info #256 (kiok46)

v0.32 (2016-05-09)

Full Changelog

Closed issues:

  • When is the support coming to build windows .exe using buildozer? #333
  • outdated openssl #332
  • ios deployment fails (buildozer —verbose ios debug deploy) #330
  • Can’t add uuid pytz datetime time dbf to requirements #329
  • AttributeError: ‘NoneType’ object has no attribute ‘startswith’ #326
  • android.p4a_dir use old toolchain? #325
  • Switch from pygame to sdl2 easily #313
  • IOError: [Errno 2] No such file or directory: «/home/andrew/CODE/Python/kivy-test-android/.buildozer/android/platform/python-for-android/dist/helloworld/bin/HelloWorld-‘1.0’-debug.apk» #312
  • Marshmallow sdk not found #310
  • Install Buildozer: Finished processing dependencies for buildozer==0.32dev #304
  • Bump default min SDK to 13: Fix crash on orientation change bug #302
  • Disable «Open with file manager» when USB cable is connected in virtual machine #299
  • Check presence of main.py during build time #298
  • Py3: ‘Buildozer’ object has no attribute ‘critical’ #297
  • The splash screen isn’t automatically resized #292
  • buildozer don’t work if whitespace in path #287
  • buildozer help fail #285
  • Buildozer.spec ‘s title of your application can not be a Chinese character #284
  • How to build apk with a cython file #283
  • pip no longer has a —download-cache option, so downloading requirements has stopped working #279
  • Cython2 not recognized in Fedora23 ? #278
  • Buildozer VIrtual Machine Error: /jni/application/src/’: Not a directory #277
  • buildozer android debug deploy run hangs #275
  • Is it possible to move the .buildozer folder somewhere else? #273
  • configure: error: C compiler cannot create executables #272
  • buildozer deploy error #271
  • Cannot set Android API version #268
  • Support python3 #265
  • App crash when changing orientation #264
  • Broken update command #261
  • error while deploying android #257
  • jnius/jnius.c: No such file or directory #251
  • Implement source.include_patterns #245
  • Buildozer Python 3 Compatability Issues #175

Merged pull requests:

  • prepare for release 0.32 #339 (kived)
  • use p4a —color argument #338 (kived)
  • fix changing android branch #337 (kived)
  • use cp -a not cp -r #336 (akshayaurora)
  • improve build directory handling, add values to default.spec #335 (kived)
  • fix incorrect api/minapi values #334 (kived)
  • fix bad placement of expanduser() #328 (kived)
  • use custom source dirs for android_new #324 (kived)
  • use p4a revamp —storage-dir option #323 (kived)
  • add adb and p4a commands to android/android_new #322 (kived)
  • fix py3 str has no decode issue #321 (kived)
  • let p4a revamp handle pure python requirements #320 (kived)
  • fix icons for ios target #319 (kived)
  • support using custom kivy-ios source dir #318 (kived)
  • disable bitcode for ios target #317 (kived)
  • Add window option for target android_new #315 (pythonic64)
  • fix usage exception #311 (kived)
  • add python3 compatibility to verbose output for android build (#221) #303 (pohmelie)
  • Allow app title to contain Unicode characters #293 (udiboy1209)
  • use ios-deploy version 1.7.0 #291 (cbenhagen)
  • Add spec option to skip automated update of installed android package #290 (pastcompute)
  • Fix issues with android.p4a_dir spec file property #288 (pastcompute)
  • Remove pip —download-cache flag (fixes #279) #282 (cbenhagen)
  • put bin/ in builddir if specified in buildozer.spec #274 (jabbalaci)
  • Implement source.include_patterns #269 (udiboy1209)
  • Updated Licence Year #266 (CodeMaxx)
  • fix android.branch option #250 (tshirtman)

v0.31 (2016-01-07)

Full Changelog

Closed issues:

  • Logo aspect ratio problem #263
  • Is there a way to seperate building environment and building apk? #259
  • buildozer must be ran with sudo #258
  • Invalid NDK platform #253
  • Q:compile error #252
  • Please update SDK url #249
  • java.lang.NoSuchMethodException: isSupportChangeBadgeByCallMethod [] #243
  • AttributeError: ‘NoneType’ object has no attribute ‘group’ #242
  • Error: Flag ‘-a’ is not valid for ‘list sdk’. #241
  • Provide custom path for android SDK to buildozer #237
  • kivy examples seem to need __version__ #236
  • pyliblo #235

Merged pull requests:

  • OS X Target for Bulldozer #262 (akshayaurora)
  • kill easy_install #244 (techtonik)
  • install requires virtualenv #239 (cbenhagen)
  • Fixed Space in app path issue. Fixes #13 #231 (dvenkatsagar)

0.30 (2015-10-04)

Full Changelog

Closed issues:

  • subprocess.CalledProcessError: Command ‘[‘ant’, ‘debug’]’ returned non-zero exit status 1 #234
  • Cannot use numpy with buildozer #232
  • Problem downloading ndk version > r9d #229
  • Error likely to missing 32 bit packages #228
  • Bulldozer can’t download new ndks 10x… #227
  • Error while trying to install Buildozer in Windows 10 #225
  • Making reverse engineering .apk harder #224
  • Buildozer wont compile libraries with cython 0.23 or 0.22 #223
  • These are the errors I get when I try to package the file… #222
  • Buildozer installs platform despite setting ndk & sdk paths #220
  • Can’t find config.ini buildozer solution #219
  • Ant error: SDK does not have any Build Tools installed #218
  • Buildozer fails because of build-tools package name #217
  • ImportError: No module named pygments #216
  • buildozer android camera #215
  • Error when first time Building apk #212
  • cannot import name spawnu #211
  • Buildozer recompiles p4a when a custom for of plyer is used. #210
  • Add android.ant_path to default.spec #209
  • Problems with adding wav, ogg and ttf files #208
  • cython issue with kivy and buildozer development versions #207
  • subprocess.CalledProcessError: Command ‘[‘ant’, ‘debug’]’ returned non-zero exit status 1 #205
  • Buildozer isn’t building if I try to include some requirements #195
  • Cant build APK for android.api = 10 #193
  • Doc error: «buildozer clean» does not exist #189
  • Can’t install pillow requirement #188
  • #error from Cython compilation #150
  • Space in app path path name causes ./distribute -m kivy to fail #13

Merged pull requests:

  • Changed p4a download to pull old_toolchain branch #233 (inclement)
  • Added support for downloading and handling android ndk r10 versions. Fixes #229 and #227 #230 (dvenkatsagar)
  • make _read_version_subdir return parse(‘0’) instead of [0], otherwise… #206 (denys-duchier)

v0.29 (2015-06-01)

Full Changelog

Fixed bugs:

  • version problem with split #201

Closed issues:

  • buildozer android release hangs at «compile platform» #199
  • Hang up at Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml #198
  • Python 3 Import error on urllib.request. #187

Merged pull requests:

  • needs testing, should fix #201 using pypa implementation of PEP440 #202 (tshirtman)
  • check for complete dist instead of dist dir #197 (kived)
  • fix ios targets xcode command #194 (cbenhagen)
  • Windows fix #192 (jaynakus)
  • some python 3 compatibility #191 (pohmelie)
  • allow custom source folders in buildozer.spec #185 (kived)
  • use upstream pexpect instead of shipping it #176 (tshirtman)

v0.27 (2015-03-08)

Full Changelog

Closed issues:

  • subprocess.CalledProcessError: Command ‘[‘ant’, ‘debug’]’ returned non-zero exit status 1 #183
  • Buildozer get error during packaging for android #182
  • Bug with android.p4a_whitelist in buildozer.spec file. #180
  • You need an option for git https #178
  • Buildozer .apk file creation issue #177
  • sudo buildozer Fails #174
  • Buildozer iOS Apps Won’t Open #171
  • always show python-for-android output on failure #170
  • Buildozer tries to install android sdk every time you try to compile an android application. #169
  • automatic installation of android sdk fails due to unicode parsing error #166
  • Move from fruitstrap to ios-deploy #107
  • buildozer ios debug build fails on MacOS Mavericks #83
  • gdb doesn’t work anymore with Xcode 5 #54
  • buildozer ios debug deploy fails on running fruitstrap at 70% with error AMDeviceInstallApplication failed #9

Merged pull requests:

  • fix black text in log #184 (kived)

0.26 (2015-01-28)

Full Changelog

Merged pull requests:

  • ensure whitelist always has a list #172 (kived)

0.25 (2015-01-27)

Full Changelog

0.24 (2015-01-27)

Full Changelog

0.23 (2015-01-27)

Full Changelog

0.22 (2015-01-27)

Full Changelog

v0.21 (2015-01-14)

Full Changelog

Merged pull requests:

  • removed some indentation in example info, added to actual comments inste… #168 (chozabu)

0.19 (2014-12-17)

Full Changelog

0.18 (2014-12-17)

Full Changelog

Closed issues:

  • buildozer can’t download python libs due to ssl certificate check fail #164
  • Buildozer feature redirect .buildozer folder outside your project #162
  • Buildozer fails on clean build #161
  • pjnius build fails on Arch Linux when requiring netifaces #159
  • error compiling with buildozer #158
  • C compiler cannot create executables #152
  • Requirements needing commas instead of spaces (like p4a) is non-obvious #147

Merged pull requests:

  • fix build error and allow redirecting build folder #163 (olymk2)
  • Remove duplicated checkbin(). #160 (attakei)
  • added note about buildozer not having anything to do with buildozer.io #157 (nickyspag)
  • Fixed logic to compare with “non installed” with “minor version upped» #156 (attakei)
  • Set «UTF-8» to java file.encoding for android update command explicitly #155 (attakei)
  • added example to default.spec requirements showing comma seperation #148 (chozabu)

0.17 (2014-09-22)

Full Changelog

0.16 (2014-09-22)

Full Changelog

Closed issues:

  • install_android_packages is too slow to run in china. #143
  • Buildozer setup.py fails with Module ImportError #140
  • buildozer downloads Android SDK 20 during every call to deploy app #137
  • Buildozerv0.15: lib/pexpect.py is not Python 3 compatable #131
  • Keep on gettting version error #129
  • arm-linux-androideabi-gcc: fatal error: no input files #127
  • I am new to python and buildozer, using buildozer to compile my first android app #125
  • I am new to python and buildozer, using buildozer to compile my first android app, #124
  • Command Failed #122
  • Exception: Cython cythonnot found #120
  • Enable use for packaging OSX apps #114
  • Errors on ‘buildozer android debug deploy run’ #113
  • Fail to download Android SDK in Linux and Python 3.3 #110
  • Unable to add «requirements» buildozer.spec #109
  • TypeError: ‘encoding’ is an invalid keyword argument for this function #106
  • Custom activity #33
  • Buildozer fails to install on Windows #27
  • support blacklist changes in python-for-android #17

Merged pull requests:

  • Test in file_rename if target directory exists. #144 (droundy)
  • Fix for android.library_references path issue #139 (excessivedemon)
  • Specs doc revision #134 (dessant)
  • Make pexpect.py Python 3 Compatable #133 (FeralBytes)
  • Added check for buildozer running as root #128 (inclement)
  • Add link to the right android python project #119 (techtonik)
  • Execute buildozer as «python -m buildozer» #118 (techtonik)
  • Fix #115 #116 (manuelbua)

0.15 (2014-06-02)

Full Changelog

Closed issues:

  • Do not set permissions (ug+x) if already set #115
  • UTF-8 Encoding Error, __init.py__ 0.15-dev #108
  • incorrect minapi android manifest value #93
  • libpython wait4 linker error #92
  • fcntl import error #88
  • No Python 3 Support #84
  • Uncaught exception on missing cython #80
  • Where are custom python-for-android recipes meant to go? #76
  • Error compiling Cython file: #73
  • Zlib still giving issues on Ubuntu 13.04 #72
  • DBAccessError permission denied in app #71
  • Selective update of depencencies #70
  • 32-bit SDK installed on 64-bit system #69
  • wrong version regex #67
  • sdk update fails on license question #66
  • x86 and armeabi-v7 libs #63
  • Missing dependenced during compilation #59
  • Bad magic number when reading generated state.db file in VMware Ubuntu guest #42
  • x86 apk support on buildozer #11

Merged pull requests:

  • Ignore UTF-8 decoding errors. Closes #108 #112 (cbenhagen)
  • chmod ug+x android_cmd #111 (cbenhagen)
  • p4a whitelist #98 (b3ni)

0.14 (2014-04-20)

Full Changelog

0.13 (2014-04-20)

Full Changelog

0.12 (2014-04-20)

Full Changelog

0.11 (2014-04-20)

Full Changelog

Closed issues:

  • Text provider #105
  • No installation instructions #104

0.10 (2014-04-09)

Full Changelog

Closed issues:

  • Android SDK installation not working anymore #101
  • Buildozer almost completes and then errors saying file exists #99
  • Java compilernot found #95
  • Absolute path problem #91
  • Error when running: buildozer —verbose android debug deploy run #89
  • buildozer.spec passing requirements #87
  • debugging «Command failed» is tedious #86
  • No module named sqlite3 #56
  • Garden packages are unsupported #39
  • python-for-android repo is hard-coded in buildozer #37
  • virtualenv-2.7 hardcoded #22
  • Buildozer error no build.py #21

Merged pull requests:

  • Fixed garden install for newer virtualenvs #100 (brousch)
  • fix ln if soft link existed #96 (pengjia)
  • Added realpath modifier to p4a_dir token #94 (inclement)
  • Documented env var checking and fixed a bug in the p4a_dir check #85 (inclement)
  • Delete dist dir if running distribute.sh #81 (inclement)
  • implement the clean command. #79 (akshayaurora)
  • Garden requirements #41 (Ian-Foote)

0.9 (2014-02-13)

Full Changelog

Closed issues:

  • Command failed: ./distribute.sh -m «kivy» error message #77
  • Error importing _scproxy #68
  • Package names beginning with a number cause an obscure crash with an unclear error message #64
  • failing to compile sample android app with buildozer #61
  • Default android.sdk setting causes sensor rotate on Android to fail #32
  • Add wakelock to options #31

Merged pull requests:

  • Updated Android NDK default version to 9c #82 (brousch)
  • Add ‘bin’ to suggested default directory excludes #78 (joseph-jnl)
  • Clarified wording in README #75 (inclement)
  • Check for package name starting with number #65 (inclement)
  • [FIX] Detect 32/64 bit on Windows, to download Android NDK #62 (alanjds)
  • Added —private and —dir Android storage option #58 (brousch)
  • Added a ‘serve’ command to serve bin/ over SimpleHTTPServer #49 (brousch)

0.8 (2013-10-29)

Full Changelog

Fixed bugs:

  • _patch_application_sources breaks from __future__ imports #35

Closed issues:

  • unresolved domain: pygame.org #34

Merged pull requests:

  • Add ability to choose python-for-android directory #60 (inclement)
  • Update default Android NDK to r9 #53 (brousch)
  • Added android.wakelock option #51 (brousch)
  • Fixed another ‘Unknown’ typo #48 (brousch)
  • Fixed spelling of ‘Unknown’ #47 (brousch)
  • Fixed missing ‘r’ on ANDROIDNDKVER environment export #46 (brousch)
  • make sure android.branch works with fresh clone #44 (akshayaurora)
  • Fixed a typo in setdefault description #40 (nithin-bose)
  • Package paths #38 (Ian-Foote)
  • add applibs in path for service too #26 (tshirtman)
  • fix distribute install before installing every dependencies, fix a few i… #25 (tshirtman)

0.7 (2013-09-11)

Full Changelog

Closed issues:

  • Builds fail on Ubuntu 13.04 with zlib.h missing #18
  • «buildozer android update» fails with an error about android.branch #12
  • Problem Ubuntu compilation on network drive #10
  • [app] «android.permission» contain an unknown permission #6
  • buildozer on ios fails at: Command failed: tools/build-all.sh #5
  • Automatically installing Android SDK fails in file_rename called from _install_android_sdk #4
  • buildozer does not support ~ in android.sdk_path #3

Merged pull requests:

  • Fix typo ‘versionning’ -> ‘versioning’. #29 (Ian-Foote)
  • Fixed hard-coded Android API 14 #23 (brousch)
  • Fixed #18: Builds fail on Ubuntu 13.04 with zlib.h missing. #20 (roskakori)
  • Europython sprint updates #19 (fabiankreutz)
  • copy the generated apk back from remote #16 (akshayaurora)
  • android.add_jars config option #15 (bob-the-hamster)
  • Ouya support #14 (bob-the-hamster)

0.2 (2012-12-20)

* This Change Log was automatically generated by github_changelog_generator

0 / 0 / 0

Регистрация: 28.06.2020

Сообщений: 34

1

03.07.2020, 20:22. Показов 5650. Ответов 82


Доброго времени суток, при компиляции (а вернее её подготовке, если я правильно поняла команду buildozer android debug) apk файла с помощью buildozer вылезает следующая ошибка:
Command failed: ./distribute.sh -l
Как я понимаю (хоть и не уверена), buildozer жалуется на что-то протухшее, к тому же не понятен ключ -l
Очень прошу помочь разобраться с ошибкой!

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



1797 / 812 / 111

Регистрация: 29.01.2013

Сообщений: 4,861

05.07.2020, 15:55

2

Ох, я даже не буду акцентировать, что слово «компиляция» к python никак не относится.
Но раз уж вы вот так вопросы формулируете, то расскажите нам:
— на какой операционной системе вы пробуете это делать?
— файл distribute.sh в системе присутствует?
— вы запускете сборку из каталога, где этот файл находится?



0



0 / 0 / 0

Регистрация: 28.06.2020

Сообщений: 34

05.07.2020, 20:39

 [ТС]

3

Да, я поняла, в чем ошибка
Но тогда все делалось в виртуалке с гостевой лубунту, сейчас решила все-таки установить на диск linux, kali
Действую по инструкции с хабра: https://m.habr.com/ru/post/301776/
Все до момента с установкой пакетов ccache и т.д. было решаемо
После ввода этой самой большой команды с установкой нескольких пакетов, вылезло несколько ошибок, информирующих о том, что ни один из пакетов не найден
Да, инструкция 2016 года, но действуя по остальным (в том числе по документации) вылезало неимоверное количество ошибок
Возможно эта инструкция устарела, либо же я что-то делаю не так
В сборке apk, тем более на python, я чайник
Можете пожалуйста помочь разобраться?



0



1797 / 812 / 111

Регистрация: 29.01.2013

Сообщений: 4,861

06.07.2020, 09:51

4

Алёна_, ох, расскажите, пожалуйста, зачем вам Kali linux??? Почему вы не поставили просто ubunta, в которой нет проблем с репозиториями и которая как раз и рассчитана на пользователя, который всё пытается тыкать мышкой, как в винде….



1



0 / 0 / 0

Регистрация: 28.06.2020

Сообщений: 34

06.07.2020, 13:29

 [ТС]

5

Попробую на ubuntu, ну а все же, почему вылезает ошибка с kali?



0



1797 / 812 / 111

Регистрация: 29.01.2013

Сообщений: 4,861

06.07.2020, 13:34

6

Алёна_, потому что kali изменился с 2016-го года достаточно сильно.



0



0 / 0 / 0

Регистрация: 28.06.2020

Сообщений: 34

07.07.2020, 14:06

 [ТС]

7

Спасибо, попробовала сборку на ubuntu, ошибок действительно стало меньше, да и проще их решать было, но всё же при очередном запуске buildozer android debug (действую по вот этой вот статье: https://habr.com/ru/post/301776/ ) вылезла ошибка, которую я даже не очень поняла (фото во вложении)
Можете пожалуйста помочь разобраться с причиной ошибки, чтобы я знала, в каком направлении искать решение?

Миниатюры

Как побороть проблему с компиляцией apk файла в buildozer?
 



0



1797 / 812 / 111

Регистрация: 29.01.2013

Сообщений: 4,861

07.07.2020, 14:35

8

Алёна_, давайте начнём с самого простого: очень много проблем связано с тем, что в путях к собираемым/исполняемым и т.д. файлам встречаются кириллические символы.

Положите каталог с проектом просто в /home/<имя вашего пользователя>, и попробуйте запустить ещё раз.

Не по теме:

Цитата
Сообщение от Алёна_
Посмотреть сообщение

попробовала сборку на ubuntu, ошибок действительно стало меньше, да и проще их решать было

так и хочется сказать что-нибудь глубокомысленное :)



0



0 / 0 / 0

Регистрация: 28.06.2020

Сообщений: 34

07.07.2020, 15:24

 [ТС]

9

Переместила папку в каталог пользователя, но опять вылезли ошибки (во вложениях)
Фраза «non-system libraries in linker flags: -lpython3.8m» наводит на мысль, что дело всё-таки в используемом python3.8, в то время как, насколько я знаю, kivy не поддерживает эту версию питона, а «подружить» их удалось с помощью команды «pip3 install kivy[base] kivy_examples —pre —extra-index-url https://kivy.org/downloads/simple/.
Либо же ошибка в чём-то другом

Миниатюры

Как побороть проблему с компиляцией apk файла в buildozer?
 

Как побороть проблему с компиляцией apk файла в buildozer?
 



0



1797 / 812 / 111

Регистрация: 29.01.2013

Сообщений: 4,861

07.07.2020, 15:33

10

Алёна_, я вижу, что у вас заголовочного файла pyconfig.h не хватает.



0



0 / 0 / 0

Регистрация: 28.06.2020

Сообщений: 34

07.07.2020, 16:06

 [ТС]

11

Поискала информацию, пишут, что такая ошибка возникает при отсутствии файла python3-dev
Но у меня этот файл скачан
Есть какие-то другие способы исправить это?



0



1797 / 812 / 111

Регистрация: 29.01.2013

Сообщений: 4,861

07.07.2020, 16:08

12

Цитата
Сообщение от Алёна_
Посмотреть сообщение

Но у меня этот файл скачан

наверное, там писали, что надо установить этот пакет, а не скачать этот фал?



0



0 / 0 / 0

Регистрация: 28.06.2020

Сообщений: 34

07.07.2020, 16:24

 [ТС]

13

Да, пакет python3-dev
Но дело не меняет
Пакет установлен—файл не найден



0



1797 / 812 / 111

Регистрация: 29.01.2013

Сообщений: 4,861

07.07.2020, 16:33

14

Алёна_, пробовали искать фал по файловой системе?



0



0 / 0 / 0

Регистрация: 28.06.2020

Сообщений: 34

07.07.2020, 21:47

 [ТС]

15

Файл не найден

Добавлено через 4 часа 55 минут
На всех форумах/сайтах, где задавался похожий вопрос о проблеме с pyconfig.h, рекомендовали установить python3-dev, но у меня этот пакет установлен, а файл в системе отсутствует, почему так происходит?



0



1797 / 812 / 111

Регистрация: 29.01.2013

Сообщений: 4,861

07.07.2020, 23:04

16

Алёна_, вспомню, где у меня тут убунта и посмотрю

Добавлено через 29 минут
Алёна_, убунту не нашёл. в centos мне пришлось поставить пакет python38-devel.x86_64 что бы файлик появился



0



0 / 0 / 0

Регистрация: 28.06.2020

Сообщений: 34

08.07.2020, 00:48

 [ТС]

17

Пыталась через apt-get, пакет python38-devel.x86_64 не найден, пробовала вариации: python3.8-devel.x86_64, python3-devel.x86_64, python3-devel: ни один из пакетов не найден
Так же пыталась все тоже самое через apt и pip
Попыталась установить через yum, устанавливаю yum, получаю:
E: Невозможно найти пакет yum
С заглавной буквы тоже пробовала
При всем этом ping 8.8.8.8 показывает наличие соединения, да и браузер работает



0



-39 / 83 / 11

Регистрация: 26.06.2013

Сообщений: 4,177

08.07.2020, 08:36

18

Алёна, а Вы вот этот виртуальный образ пробовали https://github.com/Zen-CODE/ki… CompleteVM или тот, который под видео Олега Молчанова?

Добавлено через 52 секунды
Или Вы не готовый виртуальный образ использовать пытались, а самостоятельно настроить хотели?



0



1797 / 812 / 111

Регистрация: 29.01.2013

Сообщений: 4,861

08.07.2020, 09:29

19

Алёна_, тогда ждите вечера, я поставлю убунту 2020 и найду.



0



0 / 0 / 0

Регистрация: 28.06.2020

Сообщений: 34

08.07.2020, 12:12

 [ТС]

20

У меня на windows 10 виртуалка есть, попробую
Ну а так лучше конечно на ubuntu



0



Total Weekly Downloads (4,315)

GitHub Stars

1.44K

Forks

446

Contributors

100


Direct Usage Popularity


The PyPI package buildozer receives a total of
4,315 downloads a week. As such, we scored
buildozer popularity level to be Recognized.

Based on project statistics from the GitHub repository for the
PyPI package buildozer, we found that it has been
starred 1,441 times.

The download numbers shown are the average weekly downloads from the
last 6 weeks.

Security and license risk for latest version

Release Date
Jan 28, 2023

Direct Vulnerabilities
  • 0

    C

  • 0

    H

  • 0

    M

  • 0

    L

Indirect Vulnerabilities
  • 0

    C

  • 0

    H

  • 0

    M

  • 0

    L

All security vulnerabilities belong to
production dependencies of direct and indirect
packages.


License

MIT


Security Policy

No

We found a way for you to contribute to the project! Looks like
buildozer is missing a security policy.


You can
connect your project’s repository to Snyk
to stay up to date on security alerts and receive automatic fix pull
requests.

Keep your project free of vulnerabilities with Snyk

Commit Frequency

Open Issues
187

Open PR
20

Last Release

11 days ago

Last Commit

10 days ago


Further analysis of the maintenance status of buildozer based on
released PyPI versions cadence, the repository activity,
and other data points determined that its maintenance is
Healthy.

We found that buildozer demonstrates a positive version release cadence
with at least one new version released in the past 3 months.

As a healthy sign for on-going project maintenance, we found that the
GitHub repository had at least 1 pull request or issue interacted with
by the community.

Python Versions Compatibility

==3.6.*, ==3.7.*, ==3.8.*


Age

10 years

Latest Release

11 days ago

Dependencies

3 Direct / 3 Total

Versions

42

Maintainers

6

Wheels

OS Independent

Welcome,

I’m Aron, from Byte::Debugger();, and in this post we are going to see how to compile Python targeting Android with Ubuntu(tested on Ubuntu 14.04) and Buildozer!! This process works with others Linux distros, but I’ll need to find the appropriate package. So, let’s start.

I – Installing buildozer

You can read the full documentation here, it’s well documented!

Buildozer itself doesn’t depend on any library, and works on Python 2.7 and >= 3.3. I recommend you to use Python 2.7.

First, we need to download PIP, a tool for installing and managing Python packages.

 # apt-get install python-pip

Now, to install buildozer run:

pip install --upgrade buildozer

If everything works fine, you will see the output: Successfully installed buildozer

II –  Targeting Android

If you target Android, you must install at least Cython, few build libs, and a Java SDK. Some binaries of the Android SDK are still in 32 bits, so you need few 32bits libraries available.

First, we need to install Cython:

# apt-get install python2.7-dev
# pip install --upgrade cython

Now, make the 32 bits lib available:

# dpkg --add-architecture i386

After it, you can update and install the necessary packages:

# apt-get update
# apt-get install build-essential ccache git lib32z1 libncurses5:i386 libstdc++6:i386 python2.7 openjdk-7-jdk unzip zlib1g-dev zlib1g:i386

Ok, now we have everything to start with Python development for Android!! Let’s try it!

III – Simple example

Let’s create a hello world to test if everything is working. In this hello world, I’m going to use kivy. If you don’t have Kivy installed, run the following command:

# apt-get install python-kivy

Now, create a new file with the name main.py, and make sure to add the line __version__ = “1.0” in your file, because buildozer will try to find this line to determine the app version.

To test it, write this simple hello world:

__version__ = “1.0”
from kivy.app import App
from kivy.uix.button import Button
 
class Hello(App):
    def build(self):
        btn = Button(text='Hello World')
        return  btn
 
Hello().run()

Now, open your terminal and go to the main.py folder. After it, create a buildozer.spec file, with:

You can open the buildzoer.spec file  and change your app settings, as the name, developer, and this kind of stuff.

To build your project, run:

buildozer -v android debug

This command will download python-for-android, Android SDK and Android NDK for you. If it’s the first time that you are building, you can go and drink some coffee, because it need to download a big chain of libs and build it, so if your computer/internet is slow, it can take a long time. I’m going to drink a cup of coffee, I hope to see you soon! If you don’t have coffee or are tired of waiting, take a look in my blog, here you can find some tutorials and examples about coding: Python Mobile, Java Mobile, Processing IDE, Firefox OS, Arduino, and this kind of stuff.

After it, you everything works fine, you will see the message:

# Android packaging done!
# APK MyApplication-1.2.0-debug.apk available in the bin directory

Now, you can get the APK in the bin folder and install it in your device! If your device is connected in the USB, just run:

adb install bin/MyApplication-1.2.0-debug.apk

To install it!

The example app:

Screenshot_2014-06-30-22-07-56

That’s all, if you have any problem, suggestion, or anything, fell free and comment here! Thx for reading!

Aron

Пожалуйста, помогите мне исправить эту ошибку. Мне не очень понятно, что я делаю не так, хотя все делаю по инструкции, но все равно ничего не происходит. Инструкцию брал отсюда: https://habr.com/ ru/post/479236/?_ga=2.123618825.360456955.1651262827-1665687537.1630823151

# Command failed: /usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=BooruScraper --bootstrap=sdl2 --requirements=python3,kivy,pyTelegramBotAPI,requests,bs4,httplib2,pyaspeller,googletrans --arch arm64-v8a --arch armeabi-v7a --copy-libs --color=always --storage-dir="/content/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a" --ndk-api=21 --ignore-setup-py --debug
# ENVIRONMENT:
#     CUDNN_VERSION = '8.0.5.39'
#     PYDEVD_USE_FRAME_EVAL = 'NO'
#     LD_LIBRARY_PATH = '/usr/local/nvidia/lib:/usr/local/nvidia/lib64'
#     CLOUDSDK_PYTHON = 'python3'
#     LANG = 'en_US.UTF-8'
#     ENABLE_DIRECTORYPREFETCHER = '1'
#     HOSTNAME = '8f89dd7fb7c4'
#     OLDPWD = '/'
#     CLOUDSDK_CONFIG = '/content/.config'
#     USE_AUTH_EPHEM = '1'
#     NVIDIA_VISIBLE_DEVICES = 'all'
#     DATALAB_SETTINGS_OVERRIDES = '{"kernelManagerProxyPort":6000,"kernelManagerProxyHost":"172.28.0.3","jupyterArgs":["--ip=\"172.28.0.2\""],"debugAdapterMultiplexerPath":"/usr/local/bin/dap_multiplexer","enableLsp":true}'
#     ENV = '/root/.bashrc'
#     PAGER = 'cat'
#     NCCL_VERSION = '2.7.8'
#     TF_FORCE_GPU_ALLOW_GROWTH = 'true'
#     JPY_PARENT_PID = '42'
#     NO_GCE_CHECK = 'False'
#     PWD = '/content'
#     HOME = '/root'
#     LAST_FORCED_REBUILD = '20220428'
#     CLICOLOR = '1'
#     DEBIAN_FRONTEND = 'noninteractive'
#     LIBRARY_PATH = '/usr/local/cuda/lib64/stubs'
#     GCE_METADATA_TIMEOUT = '3'
#     GLIBCPP_FORCE_NEW = '1'
#     TBE_CREDS_ADDR = '172.28.0.1:8008'
#     TERM = 'xterm-color'
#     SHELL = '/bin/bash'
#     GCS_READ_CACHE_BLOCK_SIZE_MB = '16'
#     PYTHONWARNINGS = 'ignore:::pip._internal.cli.base_command'
#     MPLBACKEND = 'module://ipykernel.pylab.backend_inline'
#     CUDA_VERSION = '11.1.1'
#     NVIDIA_DRIVER_CAPABILITIES = 'compute,utility'
#     SHLVL = '1'
#     PYTHONPATH = '/env/python'
#     NVIDIA_REQUIRE_CUDA = ('cuda>=11.1 brand=tesla,driver>=418,driver<419 '
 'brand=tesla,driver>=440,driver<441 brand=tesla,driver>=450,driver<451')
#     TBE_EPHEM_CREDS_ADDR = '172.28.0.1:8009'
#     COLAB_GPU = '0'
#     GLIBCXX_FORCE_NEW = '1'
#     PATH = '/root/.buildozer/android/platform/apache-ant-1.9.4/bin:/opt/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/tools/node/bin:/tools/google-cloud-sdk/bin'
#     LD_PRELOAD = '/usr/lib/x86_64-linux-gnu/libtcmalloc.so.4'
#     GIT_PAGER = 'cat'
#     _ = '/usr/local/bin/buildozer'
#     PACKAGES_PATH = '/root/.buildozer/android/packages'
#     ANDROIDSDK = '/root/.buildozer/android/platform/android-sdk'
#     ANDROIDNDK = '/root/.buildozer/android/platform/android-ndk-r19c'
#     ANDROIDAPI = '28'
#     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

Ссылка на журнал ошибок и файл buildozer.spec: https://drive .google.com/drive/folders/19sF74w0n7HAxbvepvYOx6J-yAMj54HIt?usp=sharing

1 ответ

Если вы хотите настроить Android API уровня 28, то версия Android SDK, которую вы собираетесь использовать, — 9 (#android.sdk = 9). Но если вы хотите создать приложение и загрузить его в магазин игр, я думаю, что минимальный уровень API должен быть 31, поэтому версия Android SDK — 12. Вы можете проверить это по ссылке ниже: https://developer.android.com/studio/releases/platforms


0

konstadinos
30 Апр 2022 в 19:23

Разработка мобильных приложений, Разработка под Android, Python


Рекомендация: подборка платных и бесплатных курсов Java — https://katalog-kursov.ru/

Фух! Только что выбрался из под траков этого чудовища. А кое-кому повезло меньше. Как и было обещано в предыдущей статье, сегодня мы расскажем, как собираются apk пакеты для программ, написанных с использованием фреймворка Kivy при помощи утилиты Buildozer.

Что для этого понадобится? Помимо уже известных инструментов — кофе-сигареты, полкило нервов — нам потребуются ключи от новенького Бульдозера, который стоит в ангаре на github и сопутствующие зависимости, без которых он, к сожалению, не заведется, а если заведется, то никого задавить не удастся и apk пакет для Android не собрать.

Кстати, пользователи Microsoft, на своих Windows машинах за Бульдозером с нами не едут, потому что для сборки apk пакета требуется Linux система, либо ее образ на виртуалке. Ну, что ж. А мы отправляемся на github, отбуксируем Бульдозер и распакуем архив в какую-нибудь директорию. Блин. Да это просто монстр!

Спокойно. Не заводим. За рычаги не хватаемся. Во-первых, нам нужно скачать пакет pip — инструмент для установки и управления пакетами Python.

sudo apt-get install python-pip

Заходим в ангар, в смысле в папку с Бульдозером…

… и выполняем команду —

sudo python setup.py install

Об успешной установке мы будем извещены сообщением Successfully installed buildozer. Бульдозер работает как на Python 2.7 так и на Python >= 3.3. Я использую Python 2.7. Просто потому, что я пока не пытался собирать apk пакеты для программ, написанных с использованием Python 3, хотя по заявлениям разработчиков Kivy, третий Python полностью поддерживается. Ну, и теперь, собственно, давайте скачаем python-for-android. У меня работает именно эта ветка, поэтому других я не предлагаю. Распакуйте python-for-android.zip и пока забудем о нем.

Зависимости

Их довольно много и от правильной их установки будет зависеть, сможете ли вы собрать заветную apk-шечку или придется выпить валидолу и начать все сначала. Считается, что все вышеперечисленные пакеты у вас отсутствуют и предполагается, что фреймворк Kivy установлен и успешно вами используется.

sudo pip install --upgrade cython
sudo pip install virtualenv
sudo pip install Jinja2

Для сборки пакета под Android нам понадобится Android SDK. Некоторые его двоичные файлы все еще находятся в 32 битных библиотеках, так что нужно сделать их доступными:

dpkg --add-architecture i386

После этого можем установить следующие пакеты:

sudo apt-get update
sudo apt-get install -y build-essential ccache git zlib1g-dev python2.7 python2.7-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-7-jdk unzip

Ну, и теперь, наконец, мы готовы сесть в удобное кресло Бульдозера и схватится за рычаги управления. Заходим в папку проекта и выполняем в терминале команду —

buildozer init

… которая создаст в проекте файл спецификации buildozer.spec, где мы будем указывать Бульдозеру с какими параметрами собирать наше приложение.

Откроем данный файл и посмотрим его содержимое:

buildozer.spec

[app]

# (str) Title of your application
title = DemoCleanMaster

# (str) Package name
package.name = democleanmaster

# (str) Package domain (needed for android/ios packaging)
package.domain = org.heattheatr

# (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,kv,jpg

# (list) Source files to exclude (let empty to not exclude anything)
#source.exclude_exts = []

# (list) List of directory to exclude (let empty to not exclude anything)
#source.exclude_dirs = []

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

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

# (str) Application versioning (method 2)
# version = 1.2.0

# (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/Images/presplash.jpg

# (str) Icon of the application
icon.filename = %(source.dir)s/Data/Images/logo.png

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

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

#
# Android specific
#

# (list) Permissions
android.permissions = INTERNET

# (int) Android API to use
android.api = 18

# (int) Minimum API required (8 = Android 2.2 devices)
android.minapi = 8

# (int) Android SDK version to use
android.sdk = 21

# (str) Android NDK version to use
android.ndk = 9

# (bool) Use --private data storage (True) or --dir public storage (False)
android.private_storage = False

# (str) Android NDK directory (if empty, it will be automatically downloaded.)
android.ndk_path = /home/zavulon/Opt/android-ndk-r9

# (str) Android SDK directory (if empty, it will be automatically downloaded.)
android.sdk_path = /home/zavulon/Opt/android-sdk

# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
android.p4a_dir = /home/zavulon/Opt/Python/python-for-android

# (list) python-for-android whitelist
#android.p4a_whitelist =

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

#
# iOS specific
#

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

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

Теперь рассмотрим подробнее…

title = DemoCleanMaster

Это имя приложение, которое будет отображаться на Android девайсе и которое будет носить установочный apk пакет.

package.name = democleanmaster
package.domain = org.heattheatr

Уникальный домен приложения.

source.dir = .

Директория, в которой находится точка входа в приложение — файл main.py. По умолчанию это корневая директория проекта.

source.include_exts = py,kv,jpg,png

Расширение файлов, которые будут включены в сборку apk пакета из вашего проекта. Структура дерева директорий, откуда указанные файлы будут браться, сохраняется.

version.regex = __version__ = ['"](.*)['"]
version.filename = %(source.dir)s/main.py

Версия программы и в каком файле ее (версию) искать. Данный метод говорит, что в файле main.py корневой директории проекта должна быть переменная со значением версии вашего приложения.

# main.py

__version__ = '0.0.1'

# ...ваш код

requirements = kivy

Сторонние библиотеки, которые будут включены в сборку. Через запятую вы можете указать пакеты библиотек, с которыми работает ваше приложение, например: kivy, opencv, pil, sqlite3.

Полный список доступных библиотек вы можете посмотреть в редакторе спецификации в инструменте для построения UI — Kivy Designer. Очень рекомендую!

presplash.filename = %(source.dir)s/Data/Images/presplash.jpg

Изображение, которое будет показано на экране девайса пока запускается ваше приложение, где %(source.dir)s — путь к корневой директории проекта.

icon.filename = %(source.dir)s/Data/Images/logo.png

Иконка приложения, которая будет отображаться на девайсе.

orientation = portrait
fullscreen = 1

Ориентация вашего приложения на девайсе. Помимо ‘portrait’, может принимать значение ‘landscape’. ‘fullscreen’ указывает разворачивать Activity на весь экран. Также принимает значение ‘0’.

android.permissions = INTERNET

Права приложения.

android.api = 18

Используемая приложением версия Android API (должна быть в Android SDK). Здесь могут возникнуть проблемы, если, например, вы указали версию Android API 10, которая отсутствует в Android NDK.

android.minapi = 8

Минимальная версия Android API, поддерживаемая приложением.

android.sdk = 21

Версия Android SDK.

android.ndk = 9

Версия Android NDK.

android.private_storage = False

Указывает создавать папку с файлами проекта на девайсе на SD карте. Рекомендую. Потому что в данном случае вы можете заменить байткомпилированое представление *.pyo файлов проекта на исходные тексты, и если будет необходимость внести в проект небольшое изменение, вы можете сделать это прямо на девайсе, отредактировав исходники или перезалив их с компьютера.

android.ndk_path = /home/zavulon/Opt/android-ndk-r9
android.sdk_path = /home/zavulon/Opt/android-sdk

android.p4a_dir = /home/zavulon/Opt/Python/python-for-android

Здесь все понятно. Можете сделать следующим образом:

android.ndk_path = 
android.sdk_path = 
android.p4a_dir = 

В таком случае Бульдозер скачает и Android SDK с указанными в спецификации версиями ANDROID API, и Android NDK, и python-for-android, будет скачан Apache-ant, если Бульдозер его не найдет. Также будут скачаны следующие библиотеки и исходники самого Python и модулей:

Да. Все это несколько хлопотно, но делается это один раз. Потом, для сборки проекта, достаточно просто отредактировать файл спецификации buildozer.spec и закинуть его в проект, который мы хотим собрать. Остальные параметры спецификации я не рассматриваю, поскольку пока я их еще сам не использоавл. И, да, параметры для сборки под iOS тоже остаются за траками, потому что я не имею девайса с данной платформой.

Собственно, эй, вы там — закройте двери Бульдозера с той стороны и прочь со взлетной полосы — мы заходим в папку проекта и выполняем в терминале команду начала компиляции:

buildozer android debug

Пройдет о-о-очень много времени (пригодились сигареты и кофе), прежде чем вы увидите заветное сообщение:

Обратите внимание, что apk-шечка получается дебажная. На Хабре есть статья, в которой описывается процесс создания подписанного пакета. К тому же размер сборки довольно внушительный — 7.6 Мб. Это потому, что Бульдозер включает в сборку весь Python целиком со всеми тестами и не нужными библиотеками. Также сам Kivy включается со всеми API даже если ваше приложение их не использует.

После установки собранного apk на девайсе и его старта, приложение будет довольно долго запускаться. Kivy потребуется время, чтобы извлечь и развернуть все библиотеки. К счачтью, все последующие загрузки программы длятся не более пяти секунд.

В следующей статье я расскажу, за какие рычаги дергать Бульдозер, чтобы увидеть собранный проект, но уже гораздо меньшего размера…

Удачных сборок! Смотрите под траки!

Понравилась статья? Поделить с друзьями:
  • Bulk load data conversion error overflow
  • Bulb failure pos light 60 ошибка на вольво
  • Builtins valueerror math domain error
  • Building wheel for ujson pep 517 error
  • Building wheel for pycrypto setup py error