我试图将我的应用程序安装到Android L预览英特尔Atom虚拟设备,它失败了,错误:
INSTALL_FAILED_NO_MATCHING_ABIS
这是什么意思?
我试图将我的应用程序安装到Android L预览英特尔Atom虚拟设备,它失败了,错误:
INSTALL_FAILED_NO_MATCHING_ABIS
这是什么意思?
当前回答
在visual studio社区版2017中,有时从Android选项中选择受支持的ABIs将不起作用。
在这种情况下,请验证.csproj有以下行,并且在相同的构建配置中没有重复的行。
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
为了编辑,
卸载你的Android项目 右键单击并选择编辑项目… 确保在构建配置中只出现一次上面的行 保存 右键单击你的android项目并重新加载
其他回答
在我的案例中,在xamarin项目中,在visual studio错误通过选择属性-> Android选项并检查使用共享运行时间和使用快速部署,在某些情况下,其中之一
这个问题是针对CPU架构的,你在lib文件夹中有一些abi。
去建造。Gradle为你的应用模块,在android,块添加这个:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
当我从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'
}
欢呼声问题解决
INSTALL_FAILED_NO_MATCHING_ABIS是当你试图安装一个有本机库的应用程序,而它没有适合你的cpu架构的本机库时。例如,如果你为armv7编译了一个应用程序,并试图将其安装在使用英特尔架构的模拟器上,它将无法工作。
一般情况下,要找出哪个库依赖具有不兼容的ABI,
在Android Studio中构建APK文件(菜单build > build Bundle(s)/APK(s) > build APK(s)) // actual于01.04.2020 重命名APK文件,将扩展名“APK”替换为“zip” 解压缩文件到一个新文件夹 进入libs文件夹 找出带有不兼容的abi的*.jar库
您可以尝试升级版本/删除/替换这些库来解决安装apk时INSTALL_FAILED_NO_MATCHING_ABIS问题