1:类名方法名需要跟工程的包名对应。否则java.lang.UnsatisfiedLinkError: No implementation found。
2:abiFilters表示支持后面多种情况,此时若libs中没有对应的.so文件,遇到不适配的硬件设备就会报错couldn't find ***.so
abiFilters 'arm64-v8a', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'x86', 'x86_64'
ndk {
moduleName "KeyUtils" //生成的so名字
// abiFilters 'arm64-v8a', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'x86', 'x86_64'
abiFilters 'armeabi'
stl "stlport_static" //打开.c 的 debug
}
3:jni开发需要添加
jni.srcDirs = ['src/main/jni']
.so文件引用需要添加
jniLibs.srcDirs = ['libs']
sourceSets {
main {
jni.srcDirs = ['src/main/jni']
jniLibs.srcDirs = ['libs']
assets.srcDirs = ['src/main/assets', 'src/main/assets/']
}
}
4:Error: Your project contains C++ files but it is not using a supported native build system.
gradle.properties添加如下代码即可
android.useDeprecatedNdk=true