我试图将我的应用程序安装到Android L预览英特尔Atom虚拟设备,它失败了,错误:

INSTALL_FAILED_NO_MATCHING_ABIS

这是什么意思?


当前回答

我知道这里有很多答案,但是TL;DR版本是这样的(如果你使用Xamarin Studio):

在解决方案树中右键单击Android项目 选择选项 点击Android Build 进入高级选项卡 检查您在模拟器中使用的架构(可能是x86 / armeabi-v7a / armeabi) 制作一款出色的应用吧!

其他回答

我知道这里有很多答案,但是TL;DR版本是这样的(如果你使用Xamarin Studio):

在解决方案树中右键单击Android项目 选择选项 点击Android Build 进入高级选项卡 检查您在模拟器中使用的架构(可能是x86 / armeabi-v7a / armeabi) 制作一款出色的应用吧!

INSTALL_FAILED_NO_MATCHING_ABIS是当你试图安装一个有本机库的应用程序,而它没有适合你的cpu架构的本机库时。例如,如果你为armv7编译了一个应用程序,并试图将其安装在使用英特尔架构的模拟器上,它将无法工作。

我有这个问题使用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'
    }
}

对于mac上的genymotion,我在安装apk时得到INSTALL_FAILED_NO_MATCHING_ABIS错误。

在我的项目中没有任何“APP_ABI”,但我相应地添加了它,它只为两个架构构建了一个apk,但它工作了。 https://stackoverflow.com/a/35565901/3241111

这个解决方案对我很有效。试试这个, 在应用程序的构建中添加以下行。gradle文件

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
}