android JNI 的.so问题
我建立了2个工程,一个Library工程和一个App工程。将Library工程(is Library 打勾)实现JNI,编译好的.so文件在libs目录 armeabi armeabi-v7a x86三个子文件夹下。.so文件以lib为前缀。
App工程引用Library工程,并且调用其中的业务方法,在执行的时候报异常 java.lang.UnsatisfiedLinkError
原因是初始化时,无法加载.so中的方法。
查看输出的apk文件,发现.so文件已经被打包到apk文件中了,但是安装后在/data/data/{app pkg}/lib/目录下并没有.so文件,导致无法加载。
什么原因会导致apk中的.so文件无法拷贝到lib中呢??? 求解释 --------------------编程问答-------------------- 发现一个现象,但是还不知道具体产生的原因是什么。
同样是刚才的App应用程序。
1. 如果只是adb push 到/system/app下, .so不会拷贝到/data/data/{pkg}/lib目录下
2. 如果是adb install -r xx.apk, .so则会拷贝到/data/data/{pkg}/lib下。
--------------------编程问答-------------------- adb push 到/system/app下, .so不会拷贝到/data/data/{pkg}/lib目录下
push只有你有重启手机吗? --------------------编程问答-------------------- 楼主需要学习,push 和install区别。 --------------------编程问答-------------------- 如果是用的push,那么.so文件需要自行拷贝
补充:移动开发 , Android