androidx 和支持依赖导致 multidex 错误

androidx and support dependency causing multidex error

我有一个库项目,其中使用了 androidx 依赖项。

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

在我的应用程序中添加库项目后,我收到多个与 dexMergerMultiDexMultiple dex files define Landroid/support/v4/... 相关的错误 .

所以我使用 window+O(导航 --> Class)搜索了该文件。然后我发现 'androidx.appcompat:appcompat:1.0.0-rc01'android.support.v4.. 库中使用了相同的 class。所以我试着排除如下 -

    implementation('androidx.appcompat:appcompat:1.0.0-rc01') {
         exclude module: 'support-v4'
    }

我也添加了 multidex true 但没有任何帮助。我读到 AndroidX 看起来它包含许多类似于支持库的 classes。在这种情况下应该怎么办?我有最新版本的 Android Studio,我的 compileSdkVersion28。我的所有依赖项都是最新的。 我已经添加了 multidex 依赖项并且我的应用程序 class 也在扩展 MultiDexApplication.

仅仅设置 multidex true 是不够的。

您需要先包含此依赖项

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

然后

defaultConfig {
        ...
        multiDexEnabled true
    }

然后在你的清单中

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

尝试

android {
    dexOptions {
        preDexLibraries = false
    }
}

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

./gradlew app:dependencies

然后像这样排除模块

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

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