场景:Android studio 编译我的项目(项目中有运用的jni),编译没有报错,正常的安装到我的机器上,可是运行的时候就报错,没有找到*.so文件...
可是明明在libs,目录下有加相关的文件?
参考网上大部分的做法,新建jniLibs文件夹把有关的文件都放到这个文件中,例如
这样对于目录结构是默认的情况
这样就搞定了。
可是我的项目是从eclipse下导出来的目录结构同上方不一样,如下:
我也加入的jniLibs这个目录,包相关的文件往这里放,结构运行到机器上还是不行,还是找不到*.so文件。。。
目录结构我又不想去改变,后来我在看build.gradle文件中有sourceSets这个设置,就尝试的往这里加参数,果然就可以正常的运行了
代码:sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
// 关键是这句
jniLibs.srcDirs = ['jniLibs']
}
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}