软件环境
- Android studio: 3.1.1
- NDK 版本: r15c
- targetSdkVersion 27
- Gradle Version: 4.4
- Android Plugin Version:3.1.1
error adding symbols: File in wrong format
已有的动态库可能是针对一个特定的平台, 指定想要编译出的库对应的平台与已有 so 文件相同
1 2 3 4 5 6 7 8 9 10 |
// Module 下的 build.gradle // 假设已有的一个 so 文件对应的指令集是 armeabi-v7a android { defaultConfig { ... ndk { abiFilters "armeabi-v7a" } } } |
java.lang.UnsatisfiedLinkError: dlopen failed … not found
打开已有的 so 失败; so 存放路径有问题;
在特定的平台的文件夹下放一份 xxx.so 文件;
如下面的在 "libs/armeabi-v7a" 文件夹下放一份 xxx.so 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// build.gradle (Moduel) android { ndk { abiFilters "armeabi-v7a" } } sourceSets { main { jniLibs.srcDirs = ['libs'] } } } // CMakeLists.txt add_library(xxx SHARED IMPORTED) set_target_properties(xxx PROPERTIES IMPORTED_LOCATION libs/${ANDROID_ABI}/xxx.so) // ${ANDROID_ABI} 指的是特定 ABI, 如 libs/armeabi-v7a/xxx.so |
现象表现可能受软件环境影响, 在另一台 PC 上修改前的版本没有问题
0 Comments