Buildozer无法为Android构建

时间:2018-09-07 22:17:40

标签: android python python-3.x kivy

我在ubuntu 18.04上有一个buildozer master,试图构建一个简单的应用程序:

from kivy.app import App
from kivy.uix.scatter import Scatter
from kivy.uix.label import Label
from kivy.uix.floatlayout import FloatLayout

class TutorialApp(App):
    def build(self):
        f = FloatLayout()
        s = Scatter()
        l = Label(text='Hello!',
                  font_size=150)
        f.add_widget(s)
        s.add_widget(l)
        return f


if __name__ == "__main__":
    TutorialApp().run()

这是buildozer的输出:

# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for android
# Run 'dpkg --version'
# Cwd None b"Debian 'dpkg' package management program version 1.19.0.5 (amd64).\nThis is free software; see the GNU General Public License version 2 or\nlater for copying conditions. There is NO warranty.\n"# Search for Git (git)
#  -> found at /usr/bin/git
# Search for Cython (cython)
#  -> found at /usr/local/bin/cython
# Search for Java compiler (javac)
#  -> found at /usr/lib/jvm/java-11-openjdk-amd64/bin/javac
# Search for Java keytool (keytool)
#  -> found at /usr/lib/jvm/java-11-openjdk-amd64/bin/keytool
# Install platform
# Run 'pip install -q --user "appdirs" "colorama>=0.3.3" "sh>=1.10" "jinja2" "six"'
# Cwd None
# Apache ANT found at /home/andrew/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK found at /home/andrew/.buildozer/android/platform/android-sdk-24
# Android NDK found at /home/andrew/Downloads/androidNDK/crystax-ndk-10.3.2
# Check application requirements
# Check garden requirements
# Compile platform
# Run '/usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=tryingPython --bootstrap=sdl2 --requirements=python3crystax,kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build"'
# Cwd /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Will compile for the following archs: armeabi-v7a [INFO]:    Found Android API target in $ANDROIDAPI [INFO]:    Available Android APIs are (19, 24) [INFO]:    Requested API target 19 is available, continuing. [INFO]:    Found NDK dir in $ANDROIDNDK [INFO]:    Got NDK version from $ANDROIDNDKVER [WARNING]: NDK version was set as r9c, but checking the NDK dir claims it is 10.3.2. [WARNING]: The build will try to continue, but it may fail and you should check that your setting is correct. [WARNING]: If the NDK dir result is correct, you don't need to manually set the NDK ver. [INFO]:    Using Crystax NDK r9c [INFO]:    Found virtualenv at /usr/local/bin/virtualenv [INFO]:    Found the following toolchain versions: ['4.9', '5', 'clang3.6', 'clang3.7'] [INFO]:    Picking the latest gcc toolchain, here 5 [INFO]:    No existing dists meet the given requirements! [INFO]:    No dist exists that meets your requirements, so one will be built. [INFO]:    Found a single valid recipe set: ['hostpython3crystax', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'python3crystax', 'sdl2', 'six', 'pyjnius', 'kivy'] [INFO]:    The selected bootstrap is sdl2_gradle [INFO]:    # Creating dist with sdl2_gradle bootstrap [INFO]:    Dist will have name tryingPython and recipes (python3crystax, kivy) [INFO]:    Dist will also contain modules () installed from pip [INFO]:    -> running cp -r /home/andrew/Documents/m...(and 247 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python3crystax [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Recipe build order is ['hostpython3crystax', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'python3crystax', 'sdl2', 'six', 'pyjnius', 'kivy'] [INFO]:    # Downloading recipes  [INFO]:    Downloading hostpython3crystax [INFO]:    Skipping hostpython3crystax download as no URL is set [INFO]:    Downloading sdl2_image [INFO]:    -> running mkdir -p /home/andrew/Document...(and 76 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/packages/sdl2_image [INFO]:    -> running basename www.libsdl.or...(and 52 more) [INFO]:    sdl2_image download already cached, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Downloading sdl2_mixer [INFO]:    -> running mkdir -p /home/andrew/Document...(and 76 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/packages/sdl2_mixer [INFO]:    -> running basename www.libsdl.or...(and 52 more) [INFO]:    sdl2_mixer download already cached, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Downloading sdl2_ttf [INFO]:    -> running mkdir -p /home/andrew/Document...(and 74 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/packages/sdl2_ttf [INFO]:    -> running basename www.libsdl.org...(and 48 more) [INFO]:    sdl2_ttf download already cached, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Downloading python3crystax [INFO]:    -> running mkdir -p /home/andrew/Document...(and 80 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/packages/python3crystax [INFO]:    -> running basename  [INFO]:    -> running rm -f .mark- [INFO]:    -> running touch .mark- [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Downloading sdl2 [INFO]:    -> running mkdir -p /home/andrew/Document...(and 70 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/packages/sdl2 [INFO]:    -> running basename www.libsdl.org...(and 26 more) [INFO]:    sdl2 download already cached, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Downloading six [INFO]:    -> running mkdir -p /home/andrew/Document...(and 69 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/packages/six [INFO]:    -> running basename pypi.python.or...(and 40 more) [INFO]:    six download already cached, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Downloading pyjnius [INFO]:    -> running mkdir -p /home/andrew/Document...(and 73 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/packages/pyjnius [INFO]:    -> running basename github.com/kiv...(and 28 more) [INFO]:    pyjnius download already cached, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Downloading kivy [INFO]:    -> running mkdir -p /home/andrew/Document...(and 70 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/packages/kivy [INFO]:    -> running basename https://github.com/kiv...(and 25 more) [INFO]:    kivy download already cached, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    # Building all recipes for arch armeabi-v7a [INFO]:    # Unpacking recipes [INFO]:    Unpacking hostpython3crystax for armeabi-v7a [INFO]:    Skipping hostpython3crystax unpack as no URL is set [INFO]:    Unpacking sdl2_image for armeabi-v7a [INFO]:    -> running basename https://www.libsdl.or...(and 52 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python3crystax/jni [INFO]:    sdl2_image is already unpacked, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Unpacking sdl2_mixer for armeabi-v7a [INFO]:    -> running basename https://www.libsdl.or...(and 52 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python3crystax/jni [INFO]:    sdl2_mixer is already unpacked, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Unpacking sdl2_ttf for armeabi-v7a [INFO]:    -> running basename https://www.libsdl.org...(and 48 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python3crystax/jni [INFO]:    sdl2_ttf is already unpacked, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Unpacking python3crystax for armeabi-v7a [INFO]:    -> running basename  [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/build/other_builds/python3crystax-version3.5/armeabi-v7a [INFO]:    python3crystax is already unpacked, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Unpacking sdl2 for armeabi-v7a [INFO]:    -> running basename https://www.libsdl.org...(and 26 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python3crystax/jni [INFO]:    sdl2 is already unpacked, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Unpacking six for armeabi-v7a [INFO]:    -> running basename https://pypi.python.or...(and 40 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/build/other_builds/six-python3crystax/armeabi-v7a [INFO]:    six is already unpacked, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Unpacking pyjnius for armeabi-v7a [INFO]:    -> running basename https://github.com/kiv...(and 28 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/build/other_builds/pyjnius-python3crystax-sdl2/armeabi-v7a [INFO]:    pyjnius is already unpacked, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    Unpacking kivy for armeabi-v7a [INFO]:    -> running basename https://github.com/kiv...(and 25 more) [INFO]:    -> directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build/build/other_builds/kivy-python3crystax-sdl2/armeabi-v7a [INFO]:    kivy is already unpacked, skipping [INFO]:    <- directory context /home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain [INFO]:    # Prebuilding recipes [INFO]:    Prebuilding hostpython3crystax for armeabi-v7a [INFO]:    hostpython3crystax has no prebuild_armeabi_v7a, skipping [INFO]:    Prebuilding sdl2_image for armeabi-v7a [INFO]:    sdl2_image has no prebuild_armeabi_v7a, skipping [INFO]:    Applying patches for sdl2_image[armeabi-v7a] [INFO]:    sdl2_image already patched, skipping [INFO]:    Prebuilding sdl2_mixer for armeabi-v7a [INFO]:    sdl2_mixer has no prebuild_armeabi_v7a, skipping [INFO]:    Applying patches for sdl2_mixer[armeabi-v7a] [INFO]:    sdl2_mixer already patched, skipping [INFO]:    Prebuilding sdl2_ttf for armeabi-v7a [INFO]:    sdl2_ttf has no prebuild_armeabi_v7a, skipping [INFO]:    Prebuilding python3crystax for armeabi-v7a [INFO]:    python3crystax has no prebuild_armeabi_v7a, skipping [INFO]:    Prebuilding sdl2 for armeabi-v7a [INFO]:    sdl2 has no prebuild_armeabi_v7a, skipping [INFO]:    Applying patches for sdl2[armeabi-v7a] [INFO]:    sdl2 already patched, skipping [INFO]:    Prebuilding six for armeabi-v7a [INFO]:    six has no prebuild_armeabi_v7a, skipping [INFO]:    Prebuilding pyjnius for armeabi-v7a [INFO]:    pyjnius has no prebuild_armeabi_v7a, skipping [INFO]:    Applying patches for pyjnius[armeabi-v7a] [INFO]:    pyjnius already patched, skipping [INFO]:    Prebuilding kivy for armeabi-v7a [INFO]:    kivy has no prebuild_armeabi_v7a, skipping [INFO]:    # Building recipes [INFO]:    Building hostpython3crystax for armeabi-v7a [INFO]:    -> running mkdir -p /home/andrew/Document...(and 127 more) Traceback (most recent call last):   File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)   File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)   File "/home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 977, in <module>
    main()   File "/home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 973, in main
    ToolchainCL()   File "/home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 512, in __init__
    getattr(self, args.subparser_name.replace('-', '_'))(args)   File "/home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 147, in wrapper_func
    build_dist_from_args(ctx, dist, args)   File "/home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 191, in build_dist_from_args
    build_recipes(build_order, python_modules, ctx)   File "/home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/build.py", line 573, in build_recipes
    recipe.build_arch(arch)   File "/home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/recipes/hostpython3crystax/__init__.py", line 40, in build_arch
    'is not installed locally.').format(python3crystax.version)) OSError: Trying to use python3crystax==3.5 but this Python version is not installed locally. b'\x1b[0m\r           working: SDL2_image-2.0.1.tar.gz                                    'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: SDL2_mixer-2.0.1.tar.gz                                    'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: SDL2_ttf-2.0.14.tar.gz                                     'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: SDL2-2.0.4.tar.gz                                          'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: six-1.9.0.tar.gz                                           'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: master.zip                                                 'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: 1.10.1.zip                                                 'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: SDL2_image-2.0.1.tar.gz                                    'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: SDL2_mixer-2.0.1.tar.gz                                    'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: SDL2_ttf-2.0.14.tar.gz                                     'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: SDL2-2.0.4.tar.gz                                          'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: six-1.9.0.tar.gz                                           'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: master.zip                                                 'b'\x1b[0m\r                                                                               \r'b'\x1b[0m\r           working: 1.10.1.zip                                                 'b'\x1b[0m\r                                                                               \r'# Command failed: /usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=tryingPython --bootstrap=sdl2 --requirements=python3crystax,kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/andrew/Documents/myPython/androidApps/.buildozer/android/platform/build"
# 
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2 

有什么想法吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

事实证明,我已经在该ubuntu系统上安装了python3.6。在阅读日志后,buildozer正在寻找python 3.5。我安装了3.5并成功通过了测试。在gradle无法使用我已经安装的openjdk版本(10.0.2)造成更多麻烦之后,我将其卸载了,并且现在一切正常。