java - 当我在脚本中导入 Kivymd 时,使用 buildozer 构建的 Android 应用程序崩溃
问题描述
我的应用程序在带有 kivy 的 android 上运行良好,所以我想使用 KivyMD 做一些更好的事情。我开始编译时只添加了 buildozer 要求,以检查一切是否仍然正常,并且确实如此。但是,一旦我在脚本中从 kivyMD 导入某些内容,应用程序会在启动画面后立即崩溃。没有其他东西可以使脚本崩溃,因为它是一个非常基本的 hello world 应用程序。
这是脚本:
from kivymd.app import MDApp #import that makes everything crash
from kivy.uix.screenmanager import Screen
from kivy.uix.label import Label
from kivy.lang import Builder
from kivy.app import App
class test(App):
def build(self):
return Label(text='Hello world')
test().run()
这是我能够从 logcat 捕获的错误:
08-02 09:33:56.465 2201 2201 E LoadedApk: Unable to instantiate appComponentFactory
08-02 09:33:56.465 2201 2201 E LoadedApk: java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on path: DexPathList[[],nativeLibraryDirectories=[/system/priv-app/MiuiSystemUI/lib/arm64, /system/lib64, /system/product/lib64, /system/lib64, /system/product/lib64]]
08-02 09:33:56.465 2201 2201 E LoadedApk: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:230)
08-02 09:33:56.465 2201 2201 E LoadedApk: at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
08-02 09:33:56.465 2201 2201 E LoadedApk: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
08-02 09:33:56.465 2201 2201 E LoadedApk: at android.app.LoadedApk.createAppFactory(LoadedApk.java:258)
08-02 09:33:56.465 2201 2201 E LoadedApk: at android.app.LoadedApk.updateApplicationInfo(LoadedApk.java:372)
08-02 09:33:56.465 2201 2201 E LoadedApk: at android.app.ActivityThread.handleApplicationInfoChanged(ActivityThread.java:5799)
08-02 09:33:56.465 2201 2201 E LoadedApk: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2036)
08-02 09:33:56.465 2201 2201 E LoadedApk: at android.os.Handler.dispatchMessage(Handler.java:107)
08-02 09:33:56.465 2201 2201 E LoadedApk: at android.os.Looper.loop(Looper.java:224)
08-02 09:33:56.465 2201 2201 E LoadedApk: at android.app.ActivityThread.main(ActivityThread.java:7590)
08-02 09:33:56.465 2201 2201 E LoadedApk: at java.lang.reflect.Method.invoke(Native Method)
08-02 09:33:56.465 2201 2201 E LoadedApk: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
08-02 09:33:56.465 2201 2201 E LoadedApk: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
我找到了一些这样的答案,但我不知道如何将其应用于 kivy 项目。我没有在这篇文章中包含 buildozer.spec 文件,因为即使有 kivyMD 要求它也能正常工作。如果需要,我可以编辑和添加它。
解决方案
推荐阅读
- arrays - 在matlab中加载stl文件并转换为3D数组
- iis - Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException:请求正文太大
- reactjs - Typescript - React 组件中的“找不到名称”错误
- javascript - Docker + React-Scripts:慢 Bundle.js 下载
- angular - 加载时的ngx-toastr错误未找到角度firebase
- snakemake - snakemake中带有空格的文件
- excel - 评估单元格值是否是命名范围的一部分
- string - 如何将字符串转换为纯脚本中的字符列表?
- keras - 删除 Keras 中预训练的 VGG16 模型中的中间层
- python - 如何使用 PIL 裁剪多张图像?