升级到Android Studio 3.0 第三方包 初始化crash,如xutils, universal-image-loader, RongIM等

本文解决了一个在Android应用中常见的问题:当从Android Studio 2.3升级到3.0,并针对较低API版本设备进行初始化第三方库时出现的NoClassDefFoundError错误。通过将项目的application继承类更改为MultiDexApplication,成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址:https://www.niwoxuexi.com/blog/android/article/311.html

今天在开发的时候,从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 即可。

仅供大家参考

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小潴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值