android studio升级到3.0之后的一个运行错误
android studio升级到3.0之后,编译时报的错误都处理完毕了,但是运行时还是报错,具体错误:Caused by: java.lang.ClassNotFoundException: Didn't find class "com.igexin.download.DownloadProvider" on path: DexPathList[[zip file "/data/app/com.jetair.cuair-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.jetair.cuair-1, /system/lib]],在模拟器运行效果,如图:
操作方法
- 01
查了好久才发现是multidex的问题(原来在2.0的时候只是在moudle的build.gradle配置了multiDexEnabled true(方法过多之后配的),没有在代码里面正确设置),所以算是自己给自己挖的坑
- 02
除了在moudle的build.gradle的defaultConfig配置了multiDexEnabled true,还要在dependencies内加入implementation 'com.android.support:multidex:1.0.0',如图
- 03
然后还要在application里面设置,如图(这是自定义的application)
- 04
一定要注意,要重写attachBaseContext方法,不要直接在application的onCreate()方法中设置(也就是说,MultiDex.install(this);这行代码要写在attachBaseContext()方法中),否则还是会报错的,报错的效果图,如下(模拟器中运行的结果)
- 05
其实,第四步中的效果图已经不影响业务实现了,你点击确定之后,应用不会退出,还可以继续往下操作,只是多出来一个错误弹窗,所以MultiDex.install(this);这行代码一定要写在attachBaseContext()方法中,这样运行就不会有任何问题了,如图