升级到Android Studio 3.0 第三方包 初始化crash,如xutils, universal-image-loader, RongIM等
作者: android 发布时间: 2017-11-14 浏览: 4611 次 编辑今天在开发的时候,从Android Studio2.3 升级到 Android Studio3.0的时候,在低版本机器(如:android4.4 api=19)初始化第三方包的时候,crash, 如xutils, universal-image-loader, RongIM等,但是在5.0 之后都可以正常运行;如下的错误日志:
java.lang.NoClassDefFoundError: com.nostra13.universalimageloader.core.assist.QueueProcessingType
或者
java.lang.NoClassDefFoundError: org.xutils.common.task.TaskControllerImpl
11-14 14:18:48.361 6769-6769/? E/memtrack: Couldn't load memtrack module (No such file or directory) 11-14 14:18:48.361 6769-6769/? E/android.os.Debug: failed to load memtrack module: -2 11-14 14:18:49.001 6783-6783/? E/memtrack: Couldn't load memtrack module (No such file or directory) 11-14 14:18:49.001 6783-6783/? E/android.os.Debug: failed to load memtrack module: -2 11-14 14:18:49.461 6793-6793/com.zuihuibao E/AndroidRuntime: FATAL EXCEPTION: main Process: com.zuihuibao, PID: 6793 java.lang.NoClassDefFoundError: org.xutils.common.task.TaskControllerImpl at org.xutils.x$Ext.init(x.java:90) at com.zuihuibao.ZHBApplication.initXUtils(ZHBApplication.java:108) at com.zuihuibao.ZHBApplication.onCreate(ZHBApplication.java:71) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4344) at android.app.ActivityThread.access$1500(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) 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:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method) 11-14 14:18:50.251 1918-1918/com.android.launcher E/EGL_emulation: tid 1918: eglSurfaceAttrib(1199): error 0x3009 (EGL_BAD_MATCH)
网上的资料很少,最后花了大半天时间,终于问题解决了:
因为产生此问题的原型是由于在android stuido 中进行了分包的处理,分包处理后把项目application继承的父类改为MultiDexApplication 即可。
仅供大家参考