如果我覆盖应用程序并将 multiDexEnabled 设置为 'true' 会怎样?

What if I override Application and set multiDexEnabled to 'true'?

这个问题只是出于好奇。我一直在玩 MultiDexApplication 和整个 multi-dex 东西。事实证明,我的应用程序中并不真正需要它。我已经从 MultiDexApplication 恢复到 Application 以覆盖我的应用 class.

出于好奇,我尝试了两件事:

  1. 在应用 class 中覆盖 Application 但将 multiDexEnabled 设置为 true. 在在这种情况下,应用程序中没有任何反应,似乎 运行 没问题。在我没有预见到的情况下会不会有问题?
  2. 覆盖应用程序中的 MultiDexApplication class 但将 multiDexEnabled 设置为 false. 我在这种情况下,我找不到 class MultiDexApplication。再次启用 multiDexEnabled 使 class 可用。为什么一个人不想 multiDexEnabled 就不能扩展 MultiDexApplication

同样,这个问题只是出于好奇。如果这对您来说是不必要的阅读,请原谅。

  1. 您的设备至少 运行 Android 5. Art 本身支持多重索引,因此您什么都不用做。 运行 它在具有旧版本 Android 的设备上。它会崩溃

  2. 2.

Override MultiDexApplication in the app class but set minifyEnabled to false.

minifyEnabled 适用于 Proguard。它与 Multidex 无关。还, multiDexEnabled 也不会阻止您扩展 MultiDexApplication。如果您有此问题,那么它可能与其他问题有关。

Why can one not extend MultiDexApplication without wanting to multiDexEnabled?

你为什么要使用你不使用的东西 want/need? MultiDexApplication 允许您 load/handle 多个 dex 文件。如果一个对您的应用程序来说就足够了,为什么还要费心呢?