Buildozer 在为 Android 构建 Kivy 应用程序时抱怨 XML 模式
Buildozer complains about XML schema when building Kivy app for Android
- Python: 3.6.8
使用 pip3 安装:
- 基维:1.10.1
- PyCharm: 2019.2.4
- Buildozer:0.39
我正在关注 this RealPython tutorial 之后:
$ buildozer -v android debug
PyCharm 在终端上显示这个抱怨一些 xml 模式问题:
# Run '/home/madtyn/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager tools platform-tools'
# Cwd /home/madtyn/.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/madtyn/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager tools platform-tools
#
# 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
我应该说我尝试卸载 JDK 1.11、JDK 1.8 和 JDK 13 (Zulu)。
考虑到我尝试了几件事并最终成功了,但我不知道到底是哪一步成功了,我正在逐步描述我所做的一切。
在用buildozer打包创建的文件夹里,我删除了这个文件夹
$ rm -rf .buildozer/
卸载了我的 JDK,它是祖鲁语 JDK13
根据某人的建议,我安装了一些依赖项。注意这里有一个JDK:
$ sudo apt install -y git zip unzip openjdk-8-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake
此刻,我再次尝试:
$ buildozer -v android debug
我得到了一个不同的错误。在这里你可以看到一对截图:
Updated/installed最现代的cython和kivy:
$ pip3 install -U cython==0.29.6
# I think pip3 install --upgrade cython would have been just fine
$ pip3 install --upgrade kivy
我安装了另一个依赖项,可能需要也可能不需要:
$ sudo apt install aidl
我终于启动了成功的最后一个命令,耗时约20分钟:
$ buildozer -v android debug
这创建了 apk。似乎 cython 和 kivy 版本在某些情况下具有兼容版本,因此您应该真正注意这一点。拥有最新的不会造成任何伤害。
- Python: 3.6.8
使用 pip3 安装:
- 基维:1.10.1
- PyCharm: 2019.2.4
- Buildozer:0.39
我正在关注 this RealPython tutorial 之后:
$ buildozer -v android debug
PyCharm 在终端上显示这个抱怨一些 xml 模式问题:
# Run '/home/madtyn/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager tools platform-tools'
# Cwd /home/madtyn/.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/madtyn/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager tools platform-tools
#
# 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
我应该说我尝试卸载 JDK 1.11、JDK 1.8 和 JDK 13 (Zulu)。
考虑到我尝试了几件事并最终成功了,但我不知道到底是哪一步成功了,我正在逐步描述我所做的一切。
在用buildozer打包创建的文件夹里,我删除了这个文件夹
$ rm -rf .buildozer/
卸载了我的 JDK,它是祖鲁语 JDK13
根据某人的建议,我安装了一些依赖项。注意这里有一个JDK:
$ sudo apt install -y git zip unzip openjdk-8-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake
此刻,我再次尝试:
$ buildozer -v android debug
我得到了一个不同的错误。在这里你可以看到一对截图:
Updated/installed最现代的cython和kivy:
$ pip3 install -U cython==0.29.6 # I think pip3 install --upgrade cython would have been just fine $ pip3 install --upgrade kivy
我安装了另一个依赖项,可能需要也可能不需要:
$ sudo apt install aidl
我终于启动了成功的最后一个命令,耗时约20分钟:
$ buildozer -v android debug
这创建了 apk。似乎 cython 和 kivy 版本在某些情况下具有兼容版本,因此您应该真正注意这一点。拥有最新的不会造成任何伤害。