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

INSTALL_FAILED_NO_MATCHING_ABIS

这是什么意思?


当前回答

当我从Android 7(牛轧糖)转移到Android 8(奥利奥)时,我遇到了这个问题。

我尝试了上面列出的几种方法,但不幸的是,这些方法都不起作用。

所以我把。apk文件改为。zip文件提取它,并找到了这个文件所在的lib文件夹/x86_64/darwin/libscrypt。为了删除这个,我在我的构建中添加了一个代码。Gradle模块下面的android部分(即)

packagingOptions {
    exclude 'lib/x86_64/darwin/libscrypt.dylib'
    exclude 'lib/x86_64/freebsd/libscrypt.so'
    exclude 'lib/x86_64/linux/libscrypt.so'
}

欢呼声问题解决

其他回答

@enl8enmentnow的注释应该是使用genymotion修复问题的答案:

如果你在Genymotion上遇到这个问题,即使是在使用ARM转换器,那是因为你正在创建一个像谷歌Nexus 10这样的x86虚拟设备。选择一个ARM虚拟设备,比如自定义平板电脑。

在我的情况下,设置以下选项帮助我

不知何故,这毫无理由地解决了问题。

./gradlew清洁组装,然后安装应用程序。

很晚了,但刚碰到这个。这是用于xamarin的。android。确保您没有尝试在发布模式下进行调试。如果处于发布模式并试图调试,我会得到完全相同的错误。简单地从发布切换到调试就可以让我的软件正确安装。

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