Android Gradle so文件注意事项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Gradle so文件注意事项相关的知识,希望对你有一定的参考价值。
参考技术A 项目管理迁移到gradle已经用了大半年了,对so文件的添加了解的还不清楚,直到今天经过各种试验,总算是得出一些心得。因为项目需要集成喜马拉雅的SDK,他们提供了播放器的so库,按照他们的官方文档一步一步去集成,包括参考他们SDK DEMO的例子,尝试了快一天,一直报错,报错的原因是找不到so文件,我添加so的方法如下:
1.在project/src/main/目录下建立jniLibs
2.复制SDK提供的armeabi文件夹放到jniLibs下,build.gradle文件无需修改。
3.编译运行,无法成功。
经过多次尝试,我又尝试着自己在jniLibs下建了另外一个文件夹armeabi-v7a,然后把armeabi文件下的两个so文件复制到此目录下:
编译成功,运行也成功,播放器能正常播放了。
armeabi跟armeabi-v7a目录下的两个so文件是一样的,但是不知道为什么加了armeabi-v7a这个目录就好了。
确认so文件是否打包到apk了可以用adb 查看/data/app/com.xxx.xxx/lib/arm(需要root权限)下是否生成了.so文件,比如上面编译成功后,会在此目录下生成相应的so文件
之前用高德地图的时候也碰到过这个问题,so无法打包到apk,高德的SDK也只是提供了armeabi,遇到这种情况,我们可以自己建立一个armeabi-v7a的目录去解决问题。
android studio 编译C文件出错
1、还要在gradle.properties里面加上这么一句话:
android.useDeprecatedNdk=true 2、打开app Module的build.gradle文件,在defaultConfig节点里添加以下代码 注意这里的moduleName,是我们在之前自己编写的类里面加载的so库名 ndk { moduleName "JniTest" ldLibs "log", "z", "m" abiFilters "armeabi", "armeabi-v7a", "x86" }
检查以上这两步就可以解决问题了!
本文出自 “苦逼的研发猿” 博客,请务必保留此出处http://adu668.blog.51cto.com/3900875/1963303
以上是关于Android Gradle so文件注意事项的主要内容,如果未能解决你的问题,请参考以下文章