app运行时找不到第三方包里的某个类

昨天遇到一个问题:奇葩问题
java.lang.NoClassDefFoundError: okhttp3.Dispatcher
(找不到okhttp包里的Dispatcher类),咋一看以为是OKHttp出了问题,也以为是包冲突的问题,但都不是.而且这个错误只在5.0一下的机子手机上才会出现,其他手机上不会出现。由于我之前运行的app是没有任何问题的,代码肯定是不存在问题,但是昨天一直在代码上纠结,导致浪费时间。

这个问题实际是由于分包问题导致的,我们为了能正常编译

Dalvik可执行文件.dex中的Java方法数引用超过64k时,编译器编译将无法通过。
1.我们引入: /第三方依赖库/
compile ‘com.android.support:multidex:1.0.1’
2.且配置:defaultConfig {
applicationId "info.xxx.yyyy"
minSdkVersion 18
targetSdkVersion 25
versionCode 11
versionName "1.0.0.0"
// 解决太多dex导致的问题
multiDexEnabled true

这些都做了,但是我忘了初始化multidex,所以分包时就找不到相关的类
3.ApplicationonCreate方法里, super.onCreate()方法之前调用: MultiDex.install(this);完成初始化即可解决问题。

猜你喜欢

转载自blog.csdn.net/stimgo/article/details/77979933