使用AndroidX时找不到辅助dex文件中的MultiDexApplication类

时间:2018-11-08 08:06:42

标签: android android-support-library multidex android-multidex androidx

我正在使用'androidx.multidex:multidex:2.0.0',并且使用以下命令从清单中指向MultiDexApplication类:

<application
    android:name="androidx.multidex.MultiDexApplication"
    ...

在build.gradle上,我还添加了以下条目:

defaultConfig {
    ...
    multiDexEnabled true
    ...

在低于5.0(API 21)的Android版本中运行该应用程序时,出现以下异常:

java.lang.RuntimeException: Unable to instantiate application androidx.multidex.MultiDexApplication: java.lang.ClassNotFoundException: Didn't find class "androidx.multidex.MultiDexApplication" on path [...]

我使用APK浏览器,看到在classs2.dex文件中的MultiDexApplication类和其他MultiDex帮助器类。这可能就是为什么找不到类的原因。

我必须强制这些类位于主classes.dex文件中吗?如何解决?

3 个答案:

答案 0 :(得分:0)

尽管有问题的应用程序类是我们的自定义Application类,但在迁移到AndroidX之后我遇到了同样的问题。我试图从Android Studio清理项目,但没有成功,因此最终我手动删除了所有构建文件夹,并为Android Studio做好了“使缓存无效并重新启动”的工作,这似乎已经解决了问题至少是我。

答案 1 :(得分:0)

使用multiDexKeepFile选项要求MultiDexApplication最终出现在主dex文件中。

答案 2 :(得分:-1)

尝试这个。希望对您有帮助。

{{1}}