Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编译Kivy项目并使用Android emulator运行_Android_Android Emulator_Kivy_Buildozer - Fatal编程技术网

编译Kivy项目并使用Android emulator运行

编译Kivy项目并使用Android emulator运行,android,android-emulator,kivy,buildozer,Android,Android Emulator,Kivy,Buildozer,我正在考虑用Python+Kivy编写一个简单的应用程序,主要是供我自己使用——没什么特别的。为了发展,我希望能够 将应用程序编译成一个包 在Android模拟器上运行它 可悲的是,目前我还不能很好地完成这个循环——谷歌搜索也帮不上忙 我相信我下载了所有相关的工具:Kivy、buildozer、Android SDK。我输入了Kivy“hello world”应用程序,它在没有Android仿真的情况下运行良好-不幸的是,在模拟器下运行它(使用建议的架构x86)时,我收到一个错误安装失败\u

我正在考虑用Python+Kivy编写一个简单的应用程序,主要是供我自己使用——没什么特别的。为了发展,我希望能够

  • 将应用程序编译成一个包
  • 在Android模拟器上运行它
可悲的是,目前我还不能很好地完成这个循环——谷歌搜索也帮不上忙

我相信我下载了所有相关的工具:Kivy、buildozer、Android SDK。我输入了Kivy“hello world”应用程序,它在没有Android仿真的情况下运行良好-不幸的是,在模拟器下运行它(使用建议的架构x86)时,我收到一个错误
安装失败\u NO \u匹配\u ABIS
。如果我用ARM架构制作一个模拟器设备(运行速度非常慢),我至少可以在模拟设备上安装这个应用程序,但一旦加载它就会崩溃。错误消息没有提供信息

我猜我需要为原生x86架构(?)构建包,这是Android emulator向导中推荐的默认仿真器-对吗?如果是这样,我如何使用
buildozer
工具?或者我可以在ARM架构上运行它,而不会崩溃

一些更精细的细节:

  • 我正在OSX上运行
  • 我正在使用建议的命令
    buildozer-v android debug
  • 要安装该应用程序,我将其拖到emulator窗口(可能有更好的方法…)
  • 模拟器是Android SDK附带的,我正在模拟默认的“Nexus 5X”手机
  • Android SDK版本是23

我建议尝试在真实设备上安装应用程序,并在调试模式下将设备连接到pc,然后使用
adb logcat
获取设备日志,以了解导致错误的原因。通过这种方式,您可以确保问题是否源于您的代码或模拟器环境。

您的设置听起来不错,直接的问题完全是架构(尽管ARM模拟器上的崩溃表明您的应用程序存在错误,您可以通过签出logcat日志来调试)

python for android支持x86,并将以这种方式在模拟器上工作。您可以将其与
--arch=x86
一起使用。但是,buildozer目前没有公开此选项(它硬编码armeabi-v7a)。这并不难解决,可以在buildozer github存储库中随意打开一个关于它的问题


我会注意到,如果您有可用的设备,那么使用该设备进行调试与使用仿真器没有什么不同(或更慢/更快)。android版Buildozer/python可以推送apk并自动运行,查看logcat输出在这两种情况下的效果相同。

我的观点确实是要避免在我的手机上运行(可能是坏的)代码-这是一个有点昂贵的测试平台。。。在任何情况下,代码都是从Kivy的“Hello World”示例中复制出来的-所以我想这很好。@magiiique检查一下这个Etasamian-是的,这是我的问题。但它并没有解释在使用
buildozer
构建时如何解决这个问题-我看不到低级配置文件。或者,如果我这样做了-你是如何得到它的?@magiique你试过用不同的设备而不是Nexus系列来运行它吗?没有-但是如果问题是错误的架构/ABI,这会有帮助吗?