我试图将我的应用程序安装到Android L预览英特尔Atom虚拟设备,它失败了,错误:
INSTALL_FAILED_NO_MATCHING_ABIS
这是什么意思?
我试图将我的应用程序安装到Android L预览英特尔Atom虚拟设备,它失败了,错误:
INSTALL_FAILED_NO_MATCHING_ABIS
这是什么意思?
当前回答
我从另一个帖子中发布了一个答案,因为它对我来说很有效,诀窍是添加对两种架构的支持:
发布这篇文章是因为我找不到一个直接的答案,不得不看看几个不同的帖子来得到我想要的东西……
我能够使用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
其他回答
对于mac上的genymotion,我在安装apk时得到INSTALL_FAILED_NO_MATCHING_ABIS错误。
在我的项目中没有任何“APP_ABI”,但我相应地添加了它,它只为两个架构构建了一个apk,但它工作了。 https://stackoverflow.com/a/35565901/3241111
这对我很管用……Android > Gradle脚本>构建。gradle(模块:应用) 添加到android*
android {
// compileSdkVersion 27
defaultConfig {
//
}
buildTypes {
//
}
// buildToolsVersion '27.0.3'
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
}
这确实是一个奇怪的错误,可能是由应用程序的多索引引起的。为了解决这个问题,在应用程序的构建中使用下面的块。gradle文件:
android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
以防万一,这可能会帮助到像我这样的人。 我在Unity 3D中也遇到了同样的问题。我试图使用Android Studio中的模拟器。 所以我在播放器设置中启用了目标架构->x86架构(尽管已弃用),它起作用了!
在我的情况下(Windows 10, Flutter, Android Studio),我只是在Android Studio中创建了一个新的模拟器设备。这一次,我选择了x86_64 ABI而不是x86。这解决了我的问题。 我的模拟器设备如下面的截图所示。