【问题标题】:MultiDexApplication class in secondary dex file not found when using AndroidX使用 AndroidX 时未找到辅助 dex 文件中的 MultiDexApplication 类
【发布时间】:2019-04-11 17:11:57
【问题描述】:

我正在使用'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 浏览器,我看到 MultiDexApplication 类和其他 MultiDex 帮助类在 classes2.dex 文件中。这可能就是它找不到类的原因。

我必须强制将这些类放在主 classes.dex 文件中吗?如何解决这个问题?

【问题讨论】:

  • 有什么解决办法吗? @bplpu
  • 不,还没有成功...你对 AndroidX multidex 有同样的问题吗?
  • 是的,我也有同样的问题 :(
  • 嘿,你用的是面料吗?当我从我的项目中删除织物时,它起作用了。 @bplpu
  • 不,我没有使用织物。可能是通过删除结构,您在主 dex 文件中获得了 MultiDex 类。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-05-07
      • 1970-01-01
      • 2019-01-10
      • 2020-07-12
      • 1970-01-01
      • 2014-02-10
      • 2015-09-27
      • 2018-11-03
      • 2016-10-30
      相关资源
      最近更新 更多