[ INSTALL_FAILED_NO_MATCHING_ABIS: 提取本机库失败,res =-113]

导入到我的项目中的第三方库存在问题。

我读了相当多的文章,但没有得到任何信息如何正确处理它。

我把我的课放在文件夹里。

enter image description here

问题是我尝试运行我收到的应用程序

[INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
256339 次浏览

经过一段时间后,我调查和理解的路径是位于我的库是正确的。我只需要为不同的架构添加文件夹:

  • 系统映像

  • 英特尔 x86原子系统图像

  • MIPS 系统图像

  • Google API

我在模拟器中遇到过同样的问题,但我是这样解决的:

使用 x86 _ 64系统映像(ABI)创建新的仿真器

选择装置

选择 x86 _ 64

就是这样。

此错误指示系统(设备)不能运行应用程序。

我希望这对某人有帮助。

我的应用程序在 Nexus 5X API 26 x86(模拟器上的虚拟设备)上运行,没有任何错误,然后我加入了第三方 AAR。然后继续出现这个错误。我清理,重建,检查/未检查即时运行选项,清除数据在 AVD,执行冷启动,但问题坚持。然后我尝试的解决方案发现 给你。他/她说,把‘ x86’,‘ armeabi-v7a’加入模块 build.gradle 文件中,哈利路亚又干净又新鲜了:)

编辑: 在这个 邮寄上,Driss Bounouar 的解决方案似乎是相同的。但是在添加新的 AAR 和 HAXM 模拟器之前,我的模拟器是 x86。

2019年7月25日:

我在 Android Studio 3.0.1中遇到了这个问题:

在检查了许多帖子之后,下面是 修好的工作原理:

转到模块 建造,分级,在 仿生人块中添加以下脚本:

splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'arm64-v8a'
universalApk true
}
}

简单解决方案,欢迎评论,谢谢。

2018年9月13日 当我添加更多的类型和设置 通用 APK假的,以减少 apk 大小时,它工作

splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'arm64-v8a'
universalApk false
}
}

任何人在使用 cmake build 时遇到这个问题,解决方案是确保在应用程序模块的 android {}块中包含了四个受支持的平台:

 externalNativeBuild {
cmake {
cppFlags "-std=c++14"
abiFilters "arm64-v8a", "x86", "armeabi-v7a", "x86_64"
}
}

如果您得到这个错误时,与您的颤振项目工作,您可以添加以下代码在模块 build.gradle和在 Android block,然后在 defaultConfig块。这个错误发生在我尝试进行 flutter apk 构建时。

android{
...
defaultConfig{
...
//Add this ndk block of code to your build.gradle
ndk {
abiFilters 'armeabi-v7a', 'x86', 'armeabi'
}
}
}

使分裂依赖于同一列表的 abis 作为外部构建。单一的真相来源。

android {
// ...
defaultConfig {
// ...
externalNativeBuild {
cmake {
cppFlags "-std=c++17"
abiFilters 'x86', 'armeabi-v7a', 'x86_64'
}
}
} //defaultConfig


splits {
abi {
enable true
reset()
include defaultConfig.externalNativeBuild.getCmake().getAbiFilters().toListString()
universalApk true
}
}
} //android

flutter clean实际上对我很有用

这是由于依赖于一些过时的东西而导致的错误。删除等级依赖关系,直到错误停止出现。对我来说,是:

implementation 'org.apache.directory.studio:org.apache.commons.io:2.4'

这一行需要更新到一个更新的版本,如:

api group: 'commons-io', name: 'commons-io', version: '2.6'

Android 9和 Android 11模拟器支持手臂二进制文件。

Https://developer.android.com/studio/releases/emulator#support_for_arm_binaries_on_android_9_and_11_system_images

我在使用 API 级别为29的 x86仿真器时遇到了同样的问题,试图安装一个 apk 定位臂 ABI。

我尝试了30级 API 的 x86模拟器,它工作得很好。

从2021年10月21日起,我通过将这些代码行添加到 app level build.gradle 来修复这个问题

defaultConfig {
ndk {
abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'arm64-v8a'
}
}

对我有效的解决方案(2021年11月)是在 build.gradle 文件中向 packagingOptions 添加一个排除项。

android {
packagingOptions {
exclude("lib/**")
}
}

具体来说,即使可能显示为不推荐使用(在 IntelliJ 中通过一行) ,也必须在函数中独立使用排除()部分。这样问题就解决了。