AndroidX MultiDex未找到。

26
我正在创建一个新的Android项目,并决定使用新的AndroidX替代支持库,相关文档可以在这里找到:https://developer.android.com/jetpack/androidx/migrate
我按照步骤操作后,同步gradle之后,我可以访问androidx命名空间和其中包含的各种类。但是,在创建应用程序类时,我想从androidx.multidex.MultiDexApplication继承(可以在上面链接中的表格中看到)。然而,整个multidex包不存在。
是否有人解决了这个问题?有什么指示吗?
5个回答

47

android.enableJetifier=true这句话没有任何意义,同时可以替换它

你可以将其作为一个依赖项简单地添加,而不会对名称空间进行非透明的修改:

implementation "androidx.multidex:multidex:2.0.1"

是的,和我的答案一样。 - Thomas Cook
5
@ThomasCook 绝对不是一样的。 - Martin Zeitler
当设置为true时,Android插件会自动将现有的第三方库迁移到使用AndroidX,通过重写它们的二进制文件。如果未指定,则该标志默认为false。 - Thomas Cook
1
@ThomasCook它的意思是“第三方库”...这些基本上是针对先前支持库构建的库,人们没有机会更改依赖关系 - 这在这里并非如此。 - Martin Zeitler

12
如果您正在使用androidx,则应将MultiDexApplication(来源于androidx)添加到您的清单文件中。
<application
        android:name="androidx.multidex.MultiDexApplication"
        .....></application>

为什么这个“名称”不在官方文档中? - Adrian Grygutis

2
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'
}

不支持 AndroidX,请参考其他答案。 - ggDeGreat
@ ggDeGreat 使用此依赖项 implementation 'androidx.multidex:multidex:2.0.1' - M DEV

2
除了Martin Zeitler的回答之外,我还需要在我的gradle构建文件中添加以下内容:
defaultConfig {
  ...
  multiDexEnabled true // Add this line
  ...
}

除了依赖关系

implementation "androidx.multidex:multidex:2.0.0"

关于为什么会发生这种情况,Android开发者官网上的用户指南解释得非常清楚。

1

好的,问题已解决!

多DEX库从未是Android支持库的一部分,它是一个额外的库,必须在Gradle中导入。因此,我现在已经在我的模块Gradle文件的依赖项块中导入了它,并在我的gradle.properties文件中设置了以下内容:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接