这个错误提示是因为在两个不同的库中都包含了相同的类(com.google.gson.ExclusionStrategy)。解决方法如下:
-
删掉其中一个库。如果你的项目中只需要其中一个库,那么可以直接删除另一个库,或者将其从依赖中移除。
-
升级库版本。如果两个库都是必需的,那么可以尝试升级其中一个库的版本,使其与另一个库版本一致,或者直接升级到更高的版本。
-
使用 gradle 的 exclude 指令。在 build.gradle 文件中,可以使用 exclude 指令排除其中一个库的冲突类。例如:
implementation('com.example:library1:1.0.0') { exclude group: 'com.google.code.gson', module: 'gson' }
这样就可以排除掉 library1 中的 gson 库,避免冲突。
- 使用 MultiDex。如果你的项目中依赖的库太多,无法通过以上方法解决冲突,那么可以尝试使用 MultiDex 来支持多个 Dex 文件。在 build.gradle 文件中添加以下代码:
android { defaultConfig { ... multiDexEnabled true } ... } dependencies { implementation 'com.android.support:multidex:1.0.3' }
然后在 Application 类中重写 attachBaseContext() 方法:
public class MyApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } ... }
这样就可以支持多个 Dex 文件,避免类冲突。