软件环境
- 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