我对导入到我的项目的第三方库有疑问。
我读了很多相关文章,但没有得到任何如何正确处理它的信息。
我将我的类.so放入文件夹中。
问题是我尝试运行我收到的应用程序
[INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
2019 年 7 月 25 日:
我在 Android Studio 3.0.1 中遇到了这个问题:
检查了很多帖子后,这是有效的Fix:
转到模块 build.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
}
}
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'
}
}
}
flutter clean
实际上对我有用
implementation 'org.apache.directory.studio:org.apache.commons.io:2.4'
此行需要更新到较新的版本,例如:
api group: 'commons-io', name: 'commons-io', version: '2.6'
here找到的解决方案。他/她说,在模块 build.gradle 文件中添加“x86”、“armeabi-v7a”的 split 和 abi 块,哈利路亚,它又干净又新鲜了:)
编辑:在这个post Driss Bounouar 的解决方案似乎是相同的。但在添加新的 AAR 之前我的模拟器是 x86,并且 HAXM 模拟器已经可以工作了。
defaultConfig {
ndk {
abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'arm64-v8a'
}
}
externalNativeBuild {
cmake {
cppFlags "-std=c++14"
abiFilters "arm64-v8a", "x86", "armeabi-v7a", "x86_64"
}
}
android {
packagingOptions {
exclude("lib/**")
}
}
具体来说,extract() 部分必须是独立的,并且位于函数中,即使它可能显示为已弃用(在 IntelliJ 中有一条线穿过它)。这样问题就解决了。
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 run