AndroidX和Support依赖项导致Multidex错误。

3

我有一个使用androidx依赖的库项目。

implementation 'androidx.appcompat:appcompat:1.0.0-rc01'

在将库项目添加到我的应用程序后,我遇到了多个与 dexMergerMultiDexMultiple dex files define Landroid/support/v4/... 相关的错误。
所以我通过使用 window+O(导航 --> 类)来搜索该文件。然后我发现相同的类被用于 'androidx.appcompat:appcompat:1.0.0-rc01'android.support.v4.. 库中。因此,我尝试像下面这样排除它:
    implementation('androidx.appcompat:appcompat:1.0.0-rc01') {
         exclude module: 'support-v4'
    }

我已经添加了multidex true,但是没有起作用。我了解到AndroidX包含很多与支持库相似的类。在这种情况下应该怎么做?我的Android Studio版本是最新的,我的compileSdkVersion28,所有依赖项都已更新。 我已经添加了multidex依赖项,并且我的应用程序类也扩展了MultiDexApplication


也许启用Jetifier会有所帮助:https://dev59.com/_VUK5IYBdhLWcg3wiAUo - Christopher
3个回答

1

仅仅设置multidex true是不够的。

您需要首先包含此依赖项:

implementation 'com.android.support:multidex:1.0.3'

然后:

defaultConfig {
        ...
        multiDexEnabled true
    }

然后在您的清单文件中

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

我已经添加了 multidex 依赖项,并且我的应用程序类也扩展了 MultiDexApplication。请查看我的更新问题。 - karanatwal.github.io

1

使用以下命令检查哪个依赖项有重复的类

./gradlew app:dependencies

然后像这样排除模块

{
  exclude group: 'com.android.support'
}

希望这能解决你的问题!如果有任何疑问,请告诉我!


感谢!已删除com.android.support的错误。 - karanatwal.github.io

0

尝试

android {
    dexOptions {
        preDexLibraries = false
    }
}

之前已尝试过,但运气不佳!! - karanatwal.github.io

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