我需要在我的安卓项目中使用一些本地库(.so)。根据StackOverflow上关于这个主题的一些答案,我创建了一个 jniLibs
文件夹放在 app/src/main
中,并把文件放在那里:
armeabi/my_lib.so
armeabi-v7a/my_lib.so
x86/my_lib.so
然后,在我的Activity类中,我使用:
static {
System.loadLibrary("my_lib");
}
但是当我运行应用程序时,会生成一个UnsatisfiedLinkError异常。如果这很重要需要注意,我没有Android.mk文件,并且我没有更改与此有关的任何东西在我的gradle文件中。所以,我唯一做的事情就是将我的.so文件复制粘贴到jniLibs中,并在我的活动中编写上述代码。那么这个问题的原因可能是什么?我漏掉了什么吗?
编辑
这是我的gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 15
buildToolsVersion "23.0.3"
compileOptions.encoding = 'ISO-8859-1'
defaultConfig {
applicationId "my.package"
minSdkVersion 4
targetSdkVersion 4
ndk {
moduleName "my_so_lib"
}
}
sourceSets {
main {
jni.srcDirs = ["libs"]
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
debuggable true
}
}
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a', 'mips', 'armeabi'
universalApk false
}
}
}
1.5.0
。我按照链接建议的做法去做,但是出现了这个错误Error: NDK integration is deprecated in the current plugin.....
。我需要再做些什么吗? - user19922