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); } }
和