Mutidex和Kotlin

我正在使用multidex构建我们的应用程序。 在我们的构建中,我开始看到很多像这样的错误:

java.lang.NoClassDefFoundError:kotlin.reflect.jvm.internal.pcollections.MapEntry

在构建中找不到与kotlin.reflect相关的许多类。 它只发生在API 19和波纹管。

有谁知道可能是什么原因造成的,以及如何解决这个问题?

提前致谢!

尝试使用multiDexKeepFile api

 android { buildTypes { debug { ... multiDexEnabled true multiDexKeepFile file('multidex_keep_file.txt') } } } 

其中multidex_keep_file.txt是每行只有一个类的文件,需要将其明确地添加到主dex中

  kotlin/reflect/MyClass.class 

您也可以使用multiDexKeepProguard来保持整个包装

 -keep class kotlin.reflect.** { *; } 

如https://developer.android.com/studio/build/multidex.html中所述

如果你做multiDexEnabled true

那么您还必须提供extends MultiDexApplication的自定义应用程序类

或者在attachBaseContext()方法中调用MultiDex.install(this)

 public class MyApplication extends SomeOtherApplication { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }