我正在考虑用Python + Kivy编写一个简单的应用程序,主要是供我自己使用 - 没什么特别的。对于开发,我希望能够
可悲的是,目前我无法完全关闭循环 - 谷歌搜索并没有帮助。
我相信我下载了所有相关工具:Kivy,buildozer,Android SDK。我键入了Kivy'hello world'应用程序,它在没有Android模拟的情况下运行良好 - 不幸的是,当它在模拟器(使用建议的体系结构x86)下运行时,我收到错误INSTALL_FAILED_NO_MATCHING_ABIS
。如果我使用ARM架构制作一个仿真器设备(运行速度很慢),我至少可以在仿真设备上安装该应用程序 - 但是一旦加载就会崩溃。错误消息不提供信息。
我猜我需要为本机x86架构(?)构建软件包,这是Android模拟器向导中推荐的默认模拟器 - 是吗?如果是这样,我如何使用buildozer
工具执行此操作?或者也许我可以在ARM架构上运行它,而不会崩溃?
一些更精细的细节:
buildozer -v android debug
答案 0 :(得分:1)
我建议尝试在真实设备上安装应用程序,并在调试模式下将设备连接到PC,然后使用adb logcat
获取设备日志以了解导致错误的原因。这样,您可以确保问题是从代码还是模拟器环境中出现。
答案 1 :(得分:1)
您的设置听起来不错,最直接的问题完全在于体系结构(尽管ARM模拟器上的崩溃表明您的应用程序存在错误,您可以通过检查logcat日志来调试该错误。)
python-for-android支持x86,并且可以通过这种方式在模拟器上运行。您可以将其与--arch=x86
一起使用。但是,buildozer目前不公开此选项(它硬编码armeabi-v7a)。这不难解决,随意在buildozer github存储库中打开一个关于它的问题。
我会注意到,如果你有一个可用的设备,使用它进行调试与使用模拟器没有任何不同(或更慢/更快)。 Buildozer / python-for-android可以推送apk并自动运行它,在这两种情况下查看logcat输出都是一样的。