Answers:
INSTALL_FAILED_NO_MATCHING_ABIS
是当您尝试安装具有本机库且没有用于cpu架构的本机库的应用程序时。例如,如果您为armv7编译了一个应用程序,并试图将其安装在使用Intel架构的仿真器上,它将无法正常工作。
INSTALL_FAILED_NO_MATCHING_ABIS是当您尝试安装具有本机库且没有适用于您的cpu体系结构的本机库的应用程序时。例如,如果您为armv7编译了一个应用程序,并试图将其安装在使用Intel架构的仿真器上,则它将无法正常工作。
在Visual Studio 2015上使用Xamarin。可 通过以下方法解决此问题:
在“支持的体系结构”下,进行以下检查:
救
编辑:据报道该解决方案也可以在Visual Studio 2017上使用。
编辑2:据报道,该解决方案也适用于Mac的Visual Studio 2017。
我正在从另一个线程发布答案,因为这对我来说很有效,诀窍是增加对两种体系结构的支持:
发布此帖子是因为我找不到直接的答案,不得不查看几个不同的帖子才能完成我想要的工作...
我可以通过将x86加速(HAXM)模拟器添加到模块的build.gradle脚本中android {}块中来使用它:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
运行(构建)...现在您的输出文件夹中将有一个(yourapp)-x86-debug.apk。我确定有一种方法可以在运行时自动安装,但是我只是启动首选的HAXM模拟器并使用命令行:
adb install (yourapp)-x86-debug.apk
(yourapp)-x86-debug.apk
在我的项目输出中找不到文件。
如果您使用Genymotion,则需要安装ARM Translation和GApps
这确实是一个奇怪的错误,可能是由您的应用程序多义化引起的。要解决此问题,请在应用程序的build.gradle文件中使用以下代码块:
android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
在Android 8上:
apache.commons.io:2.4
它提供INSTALL_FAILED_NO_MATCHING_ABIS,尝试将其更改为2.5或2.6,它将起作用或将其注释掉。
@ enl8enmentnow的注释应该是使用genymotion解决问题的答案:
如果即使在使用ARM转换器时在Genymotion上也遇到此问题,那是因为您正在创建x86虚拟设备(例如Google Nexus 10),而是选择一种ARM虚拟设备,例如自定义平板电脑之一。
我使用bitcoinJ库(org.bitcoinj:bitcoinj-core:0.14.7)添加到build.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
在Visual Studio Community Edition 2017中,有时无法从Android Options中选择Supported ABI。
在这种情况下,请确认.csproj在同一构建配置中具有以下行且没有重复的行。
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
为了进行编辑,
从Android 7(牛轧糖)迁移到Android 8(奥利奥)时,我遇到了这个问题。
我已经尝试了上面列出的几种方法,但不幸的是,没有任何效果。
所以我将.apk文件更改为.zip文件,将其解压缩,并找到存在该文件的lib文件夹/x86_64/darwin/libscrypt.dylib,因此要删除此文件,我在android节下面的build.gradle模块中添加了代码(即)
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
干杯问题解决了
通常,要找出哪个库依赖项具有不兼容的ABI,
安装apk问题时,您可以尝试升级版本/删除/替换这些库以解决INSTALL_FAILED_NO_MATCHING_ABIS
就我而言,我需要下载该应用程序的x86版本。