android vmruntime 找不到,使用MultiDex时找不到kotlin的runtime。

因为代码方法数超过65535不能打包,所以我引入了

MultiDex

分包。

当我打包完成时运行到类中的其中一个

kotlin

函数时报错,导致程序崩溃。

查了很多资料说时没有kotlin运行时,但是在引入

multidex

之前程序是没有问题的。

并且我确定

MultiDex.install

是在加载这个报错的

kotlin

函数之前运行的。

我猜测是因为dex分包将

kotlin

runtime

放到了从包,而运行时又不是普通的

class

?所以导致报错

我尝试搜索过这个报错

java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/jvm/internal/Intrinsics;

通过增加一个三方依赖的办法并没有解决问题。

完整报错信息如下

06-11 18:54:39.516 com.morn.liquidate.app I/zygote64: Late-enabling -Xcheck:jni

06-11 18:54:39.633 ? I/MultiDex: VM with version 2.1.0 has multidex support

06-11 18:54:39.633 ? I/MultiDex: Installing application

06-11 18:54:39.633 ? I/MultiDex: VM has multidex support, MultiDex support library is disabled.

06-11 18:54:39.635 ? D/AndroidRuntime: Shutting down VM

06-11 18:54:39.636 ? E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.morn.liquidate.app, PID: 7870

java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/jvm/internal/Intrinsics;

at core.tool.ToastHelper.init(Unknown Source:2)

at core.base.CoreApplication.onCreate(CoreApplication.kt:21)

at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1119)

at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5872)

at android.app.ActivityThread.-wrap1(Unknown Source:0)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1689)

at android.os.Handler.dispatchMessage(Handler.java:105)

at android.os.Looper.loop(Looper.java:171)

at android.app.ActivityThread.main(ActivityThread.java:6684)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:246)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:783)

Caused by: java.lang.ClassNotFoundException: Didn't find class "kotlin.jvm.internal.Intrinsics" on path: DexPathList[[zip file "/data/app/com.morn.liquidate.app-YDKPOrzDjogfCbOyYWMxCA==/base.apk"],nativeLibraryDirectories=[/data/app/com.morn.liquidate.app-YDKPOrzDjogfCbOyYWMxCA==/lib/arm64, /system/lib64, /system/vendor/lib64]]

at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)

at java.lang.ClassLoader.loadClass(ClassLoader.java:379)

at java.lang.ClassLoader.loadClass(ClassLoader.java:312)

at core.tool.ToastHelper.init(Unknown Source:2)

at core.base.CoreApplication.onCreate(CoreApplication.kt:21)

at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1119)

at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5872)

at android.app.ActivityThread.-wrap1(Unknown Source:0)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1689)

at android.os.Handler.dispatchMessage(Handler.java:105)

at android.os.Looper.loop(Looper.java:171)

at android.app.ActivityThread.main(ActivityThread.java:6684)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:246)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:783)

06-11 18:54:39.658 ? I/Process: Sending signal. PID: 7870 SIG: 9

希望能够得到一些提示。

这是我的

kotlin

的依赖

ext.kotlin_version = '1.1.51'

api "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

我猜测奔溃的原因是

mutlidex

的加载也发生在

kotlin

方法中,这是就产生了“先有鸡还是先有蛋”的问题。所以导致了找不到类。

950-390_%E7%94%BB%E6%9D%BF-1.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值