我试图将我的应用程序安装到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'
}

欢呼声问题解决

其他回答

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

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

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

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

我从另一个帖子中发布了一个答案,因为它对我来说很有效,诀窍是添加对两种架构的支持:

发布这篇文章是因为我找不到一个直接的答案,不得不看看几个不同的帖子来得到我想要的东西……

我能够使用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

基本上如果你尝试一切,你仍然有同样的错误”,因为我面临这个问题之前太“然后检查. jar或. aar或模块添加使用ndk可能是一个库,这一个是不支持8.0(奥利奥)+,同样我使用微软SignalR插座库添加它的. jar文件和最近我发现应用程序没有安装在奥利奥后来我删除库,因为目前没有解决方案在git页面,我去另一个。

因此,如果你迫切需要,请检查你正在使用的图书馆并搜索它。