您的位置:首页 > 移动开发 > Android开发

Android jniLibs 里面的.so丢失

2015-07-03 10:56 573 查看
Android 推送是apk的一大优势,是web(html5)无法相提并论的。

我是做Android OEM开发,很多用户都要实现推送功能。

其中有腾讯的信鸽推送,还有极光推送,为多,其他的几乎没有使用到。

在Android studio 开发的项目中有两个build文件

因为提交svn减少所占的磁盘大小所以把build文件删除了

问题也就出来

jniLibs 里面的 armeabi 文件夹 和 armeabi-v7a 文件夹 下面的 .so丢失

下次客户升级的时候

调试运行,就会报错,极光推送实例 如下:

19932-19932/com.fx678.huanrong.finace E/AndroidRuntime﹕ FATAL EXCEPTION: main

Process: com.fx678.huanrong.finace, PID: 19932

java.lang.UnsatisfiedLinkError: Couldn't load jpush173 from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.fx678.huanrong.finace-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.fx678.huanrong.finace-1, /vendor/lib, /system/lib]]]:
findLibrary returned null

at java.lang.Runtime.loadLibrary(Runtime.java:365)

at java.lang.System.loadLibrary(System.java:526)

at cn.jpush.android.service.PushProtocol.<clinit>(Unknown Source)

at cn.jpush.android.service.ServiceInterface.a(Unknown Source)

at cn.jpush.android.api.JPushInterface.init(Unknown Source)

at com.fx678.huanrong.finace.MyApplication.onCreate(MyApplication.java:40)

at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)

at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4610)

at android.app.ActivityThread.access$1500(ActivityThread.java:159)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1389)

at android.os.Handler.dispatchMessage(Handler.java:110)

at android.os.Looper.loop(Looper.java:193)

at android.app.ActivityThread.main(ActivityThread.java:5367)

at java.lang.reflect.Method.invokeNative(Native Method)

at java.lang.reflect.Method.invoke(Method.java:515)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:663)

at dalvik.system.NativeStart.main(Native Method)

报错语句,(第二句)

JPushInterface.setDebugMode(false);    // 设置开启日志,发布时请关闭日志
JPushInterface.init(this);            // 初始化 JPush


这是因为 jniLibs 里面的 armeabi 文件夹 和 armeabi-v7a 文件夹 下面的 .so丢失

把jpush-sdk-release1.7.3.jar 相对应的 libjpush173.so放到armeabi 和 armeabi-v7a 文件夹中

运行就不会报错了

注意:

提醒:

做推送模块的时候,把下载的推送sdk压缩包保留在磁盘中,不要删除了

若删除了,重新下载 推送sdk 替换jar包(jar包相同可以不用替换)

再把相对应的.so文件放到相对应的armeabi 和 armeabi-v7a 文件夹中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: