我想在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
重新安装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
我安装了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.
将默认的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
答案 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)
在此处下载SDK管理器: wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip (在buildozer目录中的命令行上运行)
然后使用以下命令将其解压缩: $解压缩sdk-tools-linux-3859397.zip
当您看到工具目录时,您已经成功安装了sdkmanager
然后编辑您的.spec文件(在kivy app文件夹中)第112行,其中包含您解压缩SDK文件的路径
andriod.sdk_path =(您的文件路径),例如/ home / freezy / buildozer /