android 添加so,Android studio 中添加 .so 文件

在Android Studio中遇到编译含有JNI的项目时,运行时找不到.so库文件。尽管.so文件已存在于libs目录下,尝试按照常规方法创建jniLibs目录并放置.so文件仍无法解决问题。通过检查build.gradle文件,发现在sourceSets中添加jniLibs.srcDirs配置可以解决此问题,使得.so文件能够在不同目录结构的项目中被正确引用。
摘要由CSDN通过智能技术生成

场景:Android studio 编译我的项目(项目中有运用的jni),编译没有报错,正常的安装到我的机器上,可是运行的时候就报错,没有找到*.so文件...

可是明明在libs,目录下有加相关的文件?

参考网上大部分的做法,新建jniLibs文件夹把有关的文件都放到这个文件中,例如

01c12ffb1cf8b5e6ddbfda243f323235.png

这样对于目录结构是默认的情况

707efdfba5b419a83c51d44d7a6fd03e.png

这样就搞定了。

可是我的项目是从eclipse下导出来的目录结构同上方不一样,如下:

aea616d81d2c6b12aa8d1ce8f126c690.png

我也加入的jniLibs这个目录,包相关的文件往这里放,结构运行到机器上还是不行,还是找不到*.so文件。。。

目录结构我又不想去改变,后来我在看build.gradle文件中有sourceSets这个设置,就尝试的往这里加参数,果然就可以正常的运行了28e9bdaed7d93b3f1acc32506cba056b.png

代码: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')

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值