集成Hawk 2.0.1,遇到gson冲突的解决办法

发布时间 2023-04-24 23:41:40作者: 施行

这个错误提示是因为在两个不同的库中都包含了相同的类(com.google.gson.ExclusionStrategy)。解决方法如下:

  1. 删掉其中一个库。如果你的项目中只需要其中一个库,那么可以直接删除另一个库,或者将其从依赖中移除。

  2. 升级库版本。如果两个库都是必需的,那么可以尝试升级其中一个库的版本,使其与另一个库版本一致,或者直接升级到更高的版本。

  3. 使用 gradle 的 exclude 指令。在 build.gradle 文件中,可以使用 exclude 指令排除其中一个库的冲突类。例如:

implementation('com.example:library1:1.0.0') {
    exclude group: 'com.google.code.gson', module: 'gson'
}

  

这样就可以排除掉 library1 中的 gson 库,避免冲突。

  1. 使用 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 文件,避免类冲突。