未找到 AndroidX MultiDex

AndroidX MultiDex not found

我正在创建一个新的 android 项目,并决定使用新的 AndroidX 替代支持库,可以在此处找到相关文档:https://developer.android.com/jetpack/androidx/migrate.

我严格按照步骤操作,在同步 gradle 之后,我可以访问 androidx 命名空间和其中包含的各种 classes。但是,在创建我的应用程序时 class 我想继承自 androidx.multidex.MultiDexApplication (可以在上面的 link 中的 table 中看到)。但是,整个 multidex 包并不存在。

有人解决过这个问题吗?有什么指点吗?

好的,明白了!

Multidex 库从来不是 android 支持库的一部分,它是必须在 gradle 中导入的附加库。所以,我现在将它导入到我的模块 gradle 文件的依赖项块中,并在我的 gradle.properties 文件中设置以下内容:

# Jetifier automatically updates dependancy binaries
# To swap out support lib for androix
android.enableJetifier=true

现在,在编译时,multidex 依赖项被替换为 androidx 实现。

android.enableJetifier=true一点意义都没有,虽然可以代替.

您可以简单地将其添加为依赖项,而无需对名称空间进行不透明的处理:

implementation "androidx.multidex:multidex:2.0.1"

如果您使用的是 androidx,则应将 MultiDexApplication(reference from androidx)添加到您的清单文件中。

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

除了 Martin Zeitler 的回答之外,我还必须在我的 gradle 构建文件中添加:

defaultConfig {
  ...
  multiDexEnabled true // Add this line
  ...
}

以及依赖

implementation "androidx.multidex:multidex:2.0.0"

至于为什么会这样,this userguide 在 Android 上开发人员解释得很好。

build.gradle app module 

android {
    compileSdkVersion 22
    buildToolsVersion "23.0.0"

         defaultConfig {
             minSdkVersion 14 //lower than 14 doesn't support multidex
             targetSdkVersion 22

             // Enabling multidex support.
             multiDexEnabled true
         }
}

dependencies {
    implementation 'com.android.support:multidex:1.0.3'
}