转载自:https://blog.csdn.net/fhl13017599952/article/details/52120739
1.需要在build中添加如下配置,这是必备的
android {
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
2.如果添加了该项配置出现了问题可能原因是引用了第三方包引起
比如我这边引用了xutils这个包,因为该包中也有一个.so的文件libwebpbackport.so,所以该包中配置了打包的命令导致上述(第一条1原因)配置失效,不过经过测试,也有打包成功的时候,不过大多数时候都是失败的,具体原因还有待研究。
compile 'org.xutils:xutils:3.3.36'
最后把该包去掉,自己的.so文件就被打包到APK中了,具体查看如下:
root@android:/data/data/com.wizarpos.company # ls
cache
files
lib
shared_prefs
root@android:/data/data/com.wizarpos.company # cd lib/
root@android:/data/data/com.wizarpos.company/lib # ls
libwebpbackport.so
root@android:/data/data/com.wizarpos.person/lib # ls
libjni_cloudpos_rfcard.so
libjni_wizarpos_hsm.so
root@android:/data/data/com.wizarpos.person/lib #
3.如何解决该问题
要解决这个问题可以不是用gradle引用,改为jar包引用,步骤如下
首先找到该包的地址如:http://dl.bintray.com/wyouflf/maven/org/xutils/xutils/3.3.36/
下载对应的xutils-3.3.36.aar,之后解压该文件,提取其中的.so和class.jar文件,其中.so在jni文件夹中
class.jar在根目录中,修改一下class.jar的名字xutils3.3.36.jar,这样方便查看版本。
这样就解决了.so不能被打包的问题了。。。。。