多CPU架构下so库加载失败的解决方法
问题描述:
crash插件缺失对应CPU架构so库导致加载失败。
11-2710:44:36.185 W/System.err(15973): java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.umeng.soexample-1/base.apk"],nativeLibraryDirectories=[/data/app/com.umeng.soexample-1/lib/arm64,/data/app/com.umeng.soexample-1/base.apk!/lib/arm64-v8a,/vendor/lib64,/system/lib64]]] couldn't find "libcrashsdk.so"
11-27 10:44:36.185 W/System.err(15973): at java.lang.Runtime.loadLibrary(Runtime.java:367)
11-27 10:44:36.185 W/System.err(15973): at java.lang.System.loadLibrary(System.java:1076)
11-27 10:44:36.185 W/System.err(15973): at com.uc.crashsdk.e.d(ProGuard:4212)
11-27 10:44:36.185 W/System.err(15973): at com.uc.crashsdk.export.CrashApi.createInstanceEx(ProGuard:83)
11-27 10:44:36.185 W/System.err(15973): at com.umeng.umcrash.UMCrash.init(UMCrash.java:172)
11-27 10:44:36.185 W/System.err(15973): at java.lang.reflect.Method.invoke(Native Method)
11-27 10:44:36.185 W/System.err(15973): at com.umeng.commonsdk.UMConfigure.init(UMConfigure.java:815)
11-27 10:44:36.185 W/System.err(15973): at com.umeng.soexample.App.onCreate(App.java:50)
11-27 10:44:36.185 W/System.err(15973): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1014)
11-27 10:44:36.185 W/System.err(15973): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4962)
11-27 10:44:36.185 W/System.err(15973): at android.app.ActivityThread.access$1900(ActivityThread.java:156)
11-27 10:44:36.185 W/System.err(15973): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1511)
11-27 10:44:36.185 W/System.err(15973): at android.os.Handler.dispatchMessage(Handler.java:102)
11-27 10:44:36.185 W/System.err(15973): at android.os.Looper.loop(Looper.java:148)
11-27 10:44:36.185 W/System.err(15973): at android.app.ActivityThread.main(ActivityThread.java:5677)
11-27 10:44:36.185 W/System.err(15973): at java.lang.reflect.Method.invoke(Native Method)
11-27 10:44:36.185 W/System.err(15973): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
11-27 10:44:36.185 W/System.err(15973): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-27 10:44:36.186 E/crashsdk(15973): load libcrashsdk.so failed!asms插件缺失对应CPU架构so库导致加载失败。
11-2710:44:36.098 W/System.err(15973): java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.umeng.soexample-1/base.apk"],nativeLibraryDirectories=[/data/app/com.umeng.soexample-1/lib/arm64,/data/app/com.umeng.soexample-1/base.apk!/lib/arm64-v8a,/vendor/lib64,/system/lib64]]] couldn't find "libumeng-spy.so"
11-27 10:44:36.098 I/WindowManager( 1422): Focus moving from Window{f0eaeb5 u0 com.android.launcher3/com.android.launcher3.Launcher} to null
11-27 10:44:36.098 W/System.err(15973): at java.lang.Runtime.loadLibrary(Runtime.java:367)
11-27 10:44:36.098 W/System.err(15973): at java.lang.System.loadLibrary(System.java:1076)
11-27 10:44:36.098 W/System.err(15973): at com.umeng.umzid.Spy.<clinit>(Spy.java:7)
11-27 10:44:36.098 W/System.err(15973): at java.lang.Class.classForName(Native Method)
11-27 10:44:36.098 W/System.err(15973): at java.lang.Class.forName(Class.java:324)
11-27 10:44:36.098 W/System.err(15973): at java.lang.Class.forName(Class.java:285)
11-27 10:44:36.099 W/System.err(15973): at com.umeng.commonsdk.UMConfigure.getClass(UMConfigure.java:95)
11-27 10:44:36.099 W/System.err(15973): at com.umeng.commonsdk.UMConfigure.init(UMConfigure.java:537)
11-27 10:44:36.099 W/System.err(15973): at com.umeng.soexample.App.onCreate(App.java:50)
11-27 10:44:36.099 W/System.err(15973): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1014)
11-27 10:44:36.099 W/System.err(15973): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4962)
11-27 10:44:36.099 W/System.err(15973): at android.app.ActivityThread.access$1900(ActivityThread.java:156)
11-27 10:44:36.099 W/System.err(15973): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1511)
11-27 10:44:36.099 W/System.err(15973): at android.os.Handler.dispatchMessage(Handler.java:102)
11-27 10:44:36.099 W/System.err(15973): at android.os.Looper.loop(Looper.java:148)
11-27 10:44:36.099 W/System.err(15973): at android.app.ActivityThread.main(ActivityThread.java:5677)
11-27 10:44:36.099 W/System.err(15973): at java.lang.reflect.Method.invoke(Native Method)
11-27 10:44:36.099 W/System.err(15973): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
11-27 10:44:36.099 W/System.err(15973): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)解决方案:
如果您的项目工程需要适配armeabi以外的平台,如:armeabi-v7、x86等,则需要下载umeng-asms-vx.x.x库的.jar和.so,和下载umeng-apm-vx.x.x库的.jar和.so,在Android Studio的项目工程libs目录中拷入所有组件jar包,右键Android Studio的项目工程 —> 选择Open Module Settings —> 在 Project Structure弹出框中 —> 选择 Dependencies选项卡 —> 点击左下“+” —> 选择组件包类型 —> 引入相应的包。然后根据您项目工程对应的平台分别考入对应的.so。