Android [安装\u失败\u否\u匹配\u ABIS:提取本机库失败,res=-113]
我对导入到我的项目中的第三方库有问题 我读了很多关于这方面的文章,但没有得到任何关于如何正确处理它的信息 我把我的课放在文件夹里 问题是,我试图运行我收到的应用程序Android [安装\u失败\u否\u匹配\u ABIS:提取本机库失败,res=-113],android,android-ndk,Android,Android Ndk,我对导入到我的项目中的第三方库有问题 我读了很多关于这方面的文章,但没有得到任何关于如何正确处理它的信息 我把我的课放在文件夹里 问题是,我试图运行我收到的应用程序 [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113] 经过一段时间的调查,我知道我的LIB是正确的。我只需要为不同的体系结构添加文件夹: ARM EABI v7a系统映像 英特尔x86 Atom系统映像 MIPS系统映像
[INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
经过一段时间的调查,我知道我的LIB是正确的。我只需要为不同的体系结构添加文件夹:
- ARM EABI v7a系统映像
- 英特尔x86 Atom系统映像
- MIPS系统映像
- 谷歌API
我希望这对某人有所帮助。我的应用程序在Nexus 5X API 26 x86(emulator上的虚拟设备)上运行,没有任何错误,然后我加入了第三方AAR。然后它不断地给出这个错误。我清理、重建、选中/取消选中即时运行选项、擦除AVD中的数据、执行冷启动,但问题依然存在。然后我试着找到解决办法。他/她说,在module build.gradle文件中为“x86”、“armeabi-v7a”添加拆分和abi块,hallelujah它又干净又新鲜了:)
编辑:在这个问题上,德里斯·布努瓦的解决方案似乎是一样的。但在添加新的AAR和HAXM模拟器之前,我的模拟器是x86。2019年7月25日: 我在Android Studio 3.0.1中遇到了这个问题: 在检查了大量帖子后,这里是修复,它可以工作: 转到modulebuild.gradle并在Android块中添加此脚本:
splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'arm64-v8a'
universalApk true
}
}
简单的解决方案。请随意评论。谢谢。2018年9月13日 当添加更多类型并使用false设置universalApk以减少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"
}
}
如果您在处理Flatter项目时遇到此错误,您可以在模块
build.gradle
和Android块中添加以下代码,然后在defaultConfig
块中添加以下代码。这个错误发生在我试图构建一个flutrappk时
android{
...
defaultConfig{
...
//Add this ndk block of code to your build.gradle
ndk {
abiFilters 'armeabi-v7a', 'x86', 'armeabi'
}
}
}
使拆分依赖于与外部构建相同的ABI列表。唯一的真相来源
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
执行flatter 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模拟器支持arm二进制文件
我在使用API级别为29的x86 emulator时遇到了同样的问题,当时我试图安装一个针对arm ABI的apk
我尝试使用API级别为30的x86 emulator,效果很好。尝试以下链接:对于android 3.0.1:我在emulator上安装release apk时遇到了同样的问题。在我的情况下,对我有效的是在真实设备上安装release apk:)希望它能帮助其他人。它将创建适合每种类型(release.apk、armeabi-v7a-release.apk、universal-release.apk、x86 release.apk)的apk。检查您是否使用jniLibs文件夹,通常这会产生问题,您也可以添加到其中,“x86_64”具有相同的错误。但是在Gradle中也添加了这个(splits{…)没有任何变化!我在将我的项目运行到emulator x86中时遇到了这个问题。这个解决方案在更新到最新的Gradle[React Native]后对我来说非常有效添加文件夹,其中?@IgorGanapolsky可减少生成APK的时间,我不需要universalApkndk-abiFilters
与splits-abi
one冲突,除非splits-abi-universalApk
设置为false,否则不会抛出!在任何情况下,不要同时使用这两种选项类型!@warning-ndk-abiFilters
与splits-abi
one冲突,除非splits-abi-universalApk
设置为false!不要同时使用这两个过滤器!ndk{abiFilters“armeabi”、“x86”、“armeabi-v7a”、“x86_64”、“mips”、“mips64”、“arm64-v8a”}为metried工作,但仍然收到错误消息未能安装解析错误字符串messagePerfect!谢谢:)谢谢!这使我意识到我试图在x86映像上运行x86_64 apk。谢谢。它工作正常,我在这里写了博客: