导入到我的项目中的第三方库存在问题。
我读了相当多的文章,但没有得到任何信息如何正确处理它。
我把我的课放在文件夹里。
问题是我尝试运行我收到的应用程序
[INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
经过一段时间后,我调查和理解的路径是位于我的库是正确的。我只需要为不同的架构添加文件夹:
系统映像
英特尔 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 构建时。
build.gradle
Android block
defaultConfig
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实际上对我很有用
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 中通过一行) ,也必须在函数中独立使用排除()部分。这样问题就解决了。