android gradle jnilibs 目录,Android Gradle so文件注意事项

博主在项目中遇到集成喜马拉雅SDK时,SO文件无法正常加载的问题。通过尝试,发现仅放置armeabi目录下的SO文件无法使应用运行成功,而添加armeabi-v7a目录并复制相同SO文件后,问题得到解决。此经验同样适用于处理只提供armeabi库的其他SDK,如高德地图。检查SO文件是否打包进APK可使用ADB查看lib目录。
摘要由CSDN通过智能技术生成

项目管理迁移到gradle已经用了大半年了,对so文件的添加了解的还不清楚,直到今天经过各种试验,总算是得出一些心得。

因为项目需要集成喜马拉雅的SDK,他们提供了播放器的so库,按照他们的官方文档一步一步去集成,包括参考他们SDK DEMO的例子,尝试了快一天,一直报错,报错的原因是找不到so文件,我添加so的方法如下:

1.在project/src/main/目录下建立jniLibs

a2db830d68cd?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

2.复制SDK提供的armeabi文件夹放到jniLibs下,build.gradle文件无需修改。

3.编译运行,无法成功。

经过多次尝试,我又尝试着自己在jniLibs下建了另外一个文件夹armeabi-v7a,然后把armeabi文件下的两个so文件复制到此目录下:

a2db830d68cd?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

编译成功,运行也成功,播放器能正常播放了。

armeabi跟armeabi-v7a目录下的两个so文件是一样的,但是不知道为什么加了armeabi-v7a这个目录就好了。

确认so文件是否打包到apk了可以用adb 查看/data/app/com.xxx.xxx/lib/arm(需要root权限)下是否生成了.so文件,比如上面编译成功后,会在此目录下生成相应的so文件

a2db830d68cd?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

之前用高德地图的时候也碰到过这个问题,so无法打包到apk,高德的SDK也只是提供了armeabi,遇到这种情况,我们可以自己建立一个armeabi-v7a的目录去解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值