在使用android开发时,经常会需要使用一写.so文件,但是android studio和eclipse的处理方法是不一样的。
在android studio中并不像在eclipse中哪样使用如下就可以了:
static{
try{
System.loadLibrary("decodecjni");
}catch(Exception e){
Log.e("loadlibrary","Loading library error:"+e.toString());
}
}这样在android studio中会出现标题的错误,解决的方法是在android studio项目下的build.gradle文件立增加:
task copyNativeLibs(type: Copy) {
from fileTree(dir: 'libs', include: 'armeabi/*.so') into 'build/lib'
}
tasks.withType(Compile) {
compileTask -> compileTask.dependsOn copyNativeLibs
}
clean.dependsOn 'cleanCopyNativeLibs'
tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
pkgTask.jniFolders = [new File(buildDir, 'lib')]
}
当然了增加了这代码,在java中还是需要System.loadLibrary("**.so");否则还会出现错误。
在Android开发过程中,遇到java.lang.UnsatisfiedLinkError,通常是由于.so库加载失败导致的。相较于Eclipse,Android Studio在处理.so文件时有不同的方法。解决这个问题需要确保.so文件被正确地放置在项目的jniLibs目录下,并且对应于不同CPU架构的库文件都已包含。此外,检查项目的Build.gradle文件中是否已添加对armeabi, armeabi-v7a, arm64-v8a, x86和x86_64等架构的支持。"
115050289,7842773,傅里叶变换与频域滤波基础解析,"['数学', '频域', '卷积', '傅里叶变换']

被折叠的 条评论
为什么被折叠?



