升级到android studio3.0 gradle版本升级到4.1 gradle插件升级到3.0出现的问题

ferch
2017-10-26 10:34 3k 0

今天把android studio 升级到了 3.0 ,gradle版本升级到4.1, gradle插件升级到3.0,觉得美滋滋,然后打包,

在三星 GT-I9508V android 4.4.4 和华为 c8817l android 4.3 中安装就出现一下错误,在nexus 6 android 6.0.1中 没有问题。由于手上机子有限,更多的机型也没有覆盖到。

经过排查,把gradle版本降级到3.3,gradle 插件版本降级到2.3.3 的话就没有问题。

本来这样就解决了,但是android studio 出了新的版本可以原生支持java8,想用java8的新特效,降级之后就不能原生支持java8了,于是不死心。

继续尝试,发现问题在于使用了分包 multiDexEnabled true。就是说在gradle 3.3 ,gradle插件版本2.3.3的时候使用分包也是没有问题的,但是升级到 gradle4.1,gradle插件3.0之后使用分包就出现如下错误,在gradle4.1,gradle插件3.0中 去掉分包的语句也不会出现如下问题。

求解大佬,这个问题该如何解决。毕竟分包随着后面的业务增加总会需要的,而新版本的新特性也想一并使用。

FATAL EXCEPTION: main
Process: com.xxxx.xxxx, PID: 19842
java.lang.RuntimeException: Unable to get provider cn.jpush.android.service.DataProvider: java.lang.ClassNotFoundException: Didn't find class "cn.jpush.android.service.DataProvider" on path: DexPathList[[zip file "/data/app/com.xxxx.xxxx-6.apk"],nativeLibraryDirectories=[/data/app-lib/com.xxxx.xxxx-6, /vendor/lib, /system/lib]]
at android.app.ActivityThread.installProvider(ActivityThread.java:5282)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4873)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4756)
at android.app.ActivityThread.access$1600(ActivityThread.java:171)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1369)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5679)
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:1291)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "cn.jpush.android.service.DataProvider" on path: DexPathList[[zip file "/data/app/com.xxxx.xxxx-6.apk"],nativeLibraryDirectories=[/data/app-lib/com.xxxx.xxxx-6, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:67)
at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
at android.app.ActivityThread.installProvider(ActivityThread.java:5267)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4873) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4756) 
at android.app.ActivityThread.access$1600(ActivityThread.java:171) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1369) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:146) 
at android.app.ActivityThread.main(ActivityThread.java:5679) 
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:1291) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 
at dalvik.system.NativeStart.main(Native Method)

1个回答

热门排序
  • 你使用的Android SDK的版本号是3.0.9是吗?
    你采用的是jcenter自动集成是吗?