我试图将我的应用程序安装到Android L预览英特尔Atom虚拟设备,它失败了,错误:
INSTALL_FAILED_NO_MATCHING_ABIS
这是什么意思?
我试图将我的应用程序安装到Android L预览英特尔Atom虚拟设备,它失败了,错误:
INSTALL_FAILED_NO_MATCHING_ABIS
这是什么意思?
当前回答
对于mac上的genymotion,我在安装apk时得到INSTALL_FAILED_NO_MATCHING_ABIS错误。
在我的项目中没有任何“APP_ABI”,但我相应地添加了它,它只为两个架构构建了一个apk,但它工作了。 https://stackoverflow.com/a/35565901/3241111
其他回答
@enl8enmentnow的注释应该是使用genymotion修复问题的答案:
如果你在Genymotion上遇到这个问题,即使是在使用ARM转换器,那是因为你正在创建一个像谷歌Nexus 10这样的x86虚拟设备。选择一个ARM虚拟设备,比如自定义平板电脑。
我有这个问题使用bitcoinJ库(org.bitcoinj: bitcoinJ -core:0.14.7) 添加到构建。Gradle(在模块应用程序中)在android范围内打包选项。 它帮助了我。
android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
如果你使用Genymotion,你需要安装ARM翻译和GApps
我从另一个帖子中发布了一个答案,因为它对我来说很有效,诀窍是添加对两种架构的支持:
发布这篇文章是因为我找不到一个直接的答案,不得不看看几个不同的帖子来得到我想要的东西……
我能够使用x86加速(HAXM)模拟器,只需将其添加到我的模块构建中。gradle脚本在android{}块内:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
运行(构建)…现在在你的输出文件夹中会有一个(yourapp)-x86-debug.apk。我确信有一种方法可以在运行时自动安装,但我只是启动我首选的HAXM模拟器并使用命令行:
adb install (yourapp)-x86-debug.apk
这个问题是针对CPU架构的,你在lib文件夹中有一些abi。
去建造。Gradle为你的应用模块,在android,块添加这个:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}