未安装sdkmanager

时间:2019-12-13 21:48:44

标签: python android kivy buildozer

我想在Windows 10上将.py编译为.apk。我安装了ubuntu和buildozer,并且在我要编译文件时出现此错误。

sdkmanager路径“ /home/lukasmatrix/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager”不存在,未安装sdkmanager

日志

 Check configuration tokens

 Ensure build layout

 Create directory /mnt/c/Users/lukas/Kivy21/lol/venv/.buildozer

 Create directory /mnt/c/Users/lukas/Kivy21/lol/venv/bin

 Create directory /mnt/c/Users/lukas/Kivy21/lol/venv/.buildozer/applibs

 Create directory /mnt/c/Users/lukas/Kivy21/lol/venv/.buildozer/android/platform

Create directory /mnt/c/Users/lukas/Kivy21/lol/venv/.buildozer/android/app

 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.19.0.5 (amd64).

This is free software; see the GNU General Public License version 2 or

later for copying conditions. There is NO warranty.

 Search for Git (git)

 -> found at /usr/bin/git

Search for Cython (cython)

  -> found at /usr/local/bin/cython

 Search for Java compiler (javac)
  -> found at /usr/lib/jvm/java-11-openjdk-amd64/bin/javac

 Search for Java keytool (keytool)

  -> found at /usr/lib/jvm/java-11-openjdk-amd64/bin/keytool

 Install platform

 Run 'git clone -b master --single-branch https://github.com/kivy/python-for-android.git python-for-
android'

 Cwd /mnt/c/Users/lukas/Kivy21/lol/venv/.buildozer/android/platform

Cloning into 'python-for-android'...

Checking out files: 100% (568/568), done.

 Run '/usr/bin/python3 -m pip install -q --user \'appdirs\' \'colorama>=0.3.3\' \'jinja2\' \'six\' 

\'enum34; python_version<"3.4"\' \'sh>=1.10; sys_platform!="nt"\' \'pep517\' \'pytoml\' \'virtualenv\''

Cwd None

Apache ANT found at /home/lukasmatrix/.buildozer/android/platform/apache-ant-1.9.4

Android SDK found at /home/lukasmatrix/.buildozer/android/platform/android-sdk

Recommended android's NDK version by p4a is: 17c

Android NDK found at /home/lukasmatrix/.buildozer/android/platform/android-ndk-r17c

Installing/updating SDK platform tools if necessary

Check configuration tokens

# sdkmanager path "/home/lukasmatrix/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager" does not exist, sdkmanager is notinstalled

步骤2:

重新安装buildozer后的日志

# 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.19.0.5 (amd64).
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
# Search for Git (git)
#  -> found at /usr/bin/git
# Search for Cython (cython)
#  -> found at /usr/local/bin/cython
# Search for Java compiler (javac)
#  -> found at /usr/lib/jvm/java-11-openjdk-amd64/bin/javac
# Search for Java keytool (keytool)
#  -> found at /usr/lib/jvm/java-11-openjdk-amd64/bin/keytool
# Install platform
# Run 'git config --get remote.origin.url'
# Cwd /mnt/c/Users/lukas/Kivy21/lol/.buildozer/android/platform/python-for-android
https://github.com/kivy/python-for-android.git
# Run 'git branch -vv'
# Cwd /mnt/c/Users/lukas/Kivy21/lol/.buildozer/android/platform/python-for-android
* master dd69749f [origin/master] Merge pull request #1955 from kivy/release-2019.08.09
# Run '/usr/bin/python -m pip install -q --user \'appdirs\' \'colorama>=0.3.3\' \'jinja2\' \'six\' \'enum34; python_version<"3.4"\' \'sh>=1.10; sys_platform!="nt"\' \'pep517\' \'pytoml\' \'virtualenv\''
# Cwd None
# Apache ANT found at /home/lukasmatrix/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK found at /home/lukasmatrix/.buildozer/android/platform/android-sdk
# Recommended android's NDK version by p4a is: 17c
# Android NDK found at /home/lukasmatrix/.buildozer/android/platform/android-ndk-r17c
# Installing/updating SDK platform tools if necessary
# Run '/home/lukasmatrix/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager tools platform-tools'
# Cwd /home/lukasmatrix/.buildozer/android/platform/android-sdk
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
        at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
        at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
        at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 5 more
# Command failed: /home/lukasmatrix/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager tools platform-tools

步骤3:

我安装了jdk 8而不是jdk11

日志:

# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for android
# Run 'dpkg --version'
# Cwd None
Debian 'dpkg' package management program version 1.19.0.5 (amd64).
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
# Search for Git (git)
#  -> found at /usr/bin/git
# Search for Cython (cython)
#  -> found at /usr/local/bin/cython
# Search for Java compiler (javac)
#  -> found at /usr/lib/jvm/java-11-openjdk-amd64/bin/javac
# Search for Java keytool (keytool)
#  -> found at /usr/lib/jvm/java-11-openjdk-amd64/bin/keytool
# Install platform
# Run 'git config --get remote.origin.url'
# Cwd /mnt/c/Users/lukas/Kivy21/lol/venv/.buildozer/android/platform/python-for-android
https://github.com/kivy/python-for-android.git
# Run 'git branch -vv'
# Cwd /mnt/c/Users/lukas/Kivy21/lol/venv/.buildozer/android/platform/python-for-android
* master dd69749f [origin/master] Merge pull request #1955 from kivy/release-2019.08.09
# Run '/usr/bin/python -m pip install -q --user \'appdirs\' \'colorama>=0.3.3\' \'jinja2\' \'six\' \'enum34; python_version<"3.4"\' \'sh>=1.10; sys_platform!="nt"\' \'pep517\' \'pytoml\' \'virtualenv\''
# Cwd None
# Apache ANT found at /home/lukasmatrix/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK found at /home/lukasmatrix/.buildozer/android/platform/android-sdk
# Recommended android's NDK version by p4a is: 17c
# Android NDK found at /home/lukasmatrix/.buildozer/android/platform/android-ndk-r17c
# Check application requirements
# Check garden requirements
# Compile platform
# Run '/usr/bin/python -m pythonforandroid.toolchain create --dist_name=myapp --bootstrap=sdl2 --requirements=python3,kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir="/mnt/c/Users/lukas/Kivy21/lol/venv/.buildozer/android/platform/build-armeabi-v7a" --ndk-api=21'
# Cwd /mnt/c/Users/lukas/Kivy21/lol/venv/.buildozer/android/platform/python-for-android
[ERROR]:   Build failed: python-for-android no longer supports running under Python 2. Either upgrade to Python 3.4 or higher (recommended), or revert to python-for-android 2019.07.08. Note that you *can* still target Python 2 on Android by including python2 in your requirements.

步骤4:

将默认的python 2.7更改为3.7.5

Traceback (most recent call last):
  File "/usr/local/bin/buildozer", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3088, in <module>
    @_call_aside
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3072, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3101, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 574, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 892, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 778, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'buildozer==0.40.dev0' distribution was not found and is required by the application
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 24, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "/usr/local/bin/buildozer", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3088, in <module>
    @_call_aside
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3072, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3101, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 574, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 892, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 778, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'buildozer==0.40.dev0' distribution was not found and is required by the application

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,所以我只是删除了android-sdk文件夹 home <用户名> .biuldozer \ android \ platform(可以使用CTRL + H来找到它) 并再次运行 buildozer android debug 命令。

答案 1 :(得分:0)

在目录内编辑A文件,将.espc(在android.sdk_path内部)设置为.spec文件夹的路径:

android-sdk

然后保存/home/lukasmatrix/.buildozer/android/platform/android-sdk 。希望它能起作用。

答案 2 :(得分:0)

  1. 在此处下载SDK管理器: wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip (在buildozer目录中的命令行上运行)

  2. 然后使用以下命令将其解压缩: $解压缩sdk-tools-linux-3859397.zip

    当您看到工具目录时,您已经成功安装了sdkmanager

  3. 然后编辑您的.spec文件(在kivy app文件夹中)第112行,其中包含您解压缩SDK文件的路径

    andriod.sdk_path =(您的文件路径),例如/ home / freezy / buildozer /