Android项目引入parserng-android后遭遇Gson依赖重复冲突问题求助
Android项目引入parserng-android后遭遇Gson依赖重复冲突问题求助
嗨,这种依赖冲突确实挺闹心的,我帮你捋清楚问题根源并一步步解决:
问题原因分析
从你贴的错误日志能明确看出来:parserng-android:0.1.1这个库的aar包直接内嵌了Gson的全部类文件,而你的项目里(比如Firebase Firestore这类依赖)本身就引入了官方维护的Gson库。两者包含的Gson类完全重复,最终导致编译时触发冲突。
解决方案(分两步操作)
第一步:排除aar包中内嵌的Gson类
在你的app模块的build.gradle文件中,找到android代码块,添加packagingOptions配置,明确告诉Gradle要忽略parserng-android里的Gson类,优先使用项目中依赖的官方Gson:
android { namespace = "com.doctors_handbook.foundationdoctorshandbook" compileSdk = 35 defaultConfig { // 你原本的defaultConfig配置... } buildTypes { // 你原本的buildTypes配置... } compileOptions { // 你原本的compileOptions配置... } buildFeatures { // 你原本的buildFeatures配置... } // 新增这段packagingOptions配置 packagingOptions { exclude 'com/google/gson/**' } }
第二步:强制项目使用统一的Gson版本(可选但更稳妥)
为了避免后续其他依赖引入不同版本的Gson引发新的冲突,我们可以在settings.gradle的dependencyResolutionManagement块中添加版本强制策略,锁定Gson的版本为项目中已有的2.10.1:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url = uri("https://jitpack.io") } } // 新增这段版本强制配置 resolutionStrategy { force 'com.google.code.gson:gson:2.10.1' } }
最后验证
点击Android Studio右上角的「Sync Project with Gradle Files」按钮同步所有配置,然后重新编译项目,这些重复类的冲突应该就会完全消失了。
补充说明
这里为啥不用常规的exclude group: 'com.google.code.gson'来排除依赖?因为parserng-android不是通过Gradle依赖的方式引入Gson的,而是把Gson的类直接打包进了自己的aar包,所以常规的依赖排除方法根本无效,必须用packagingOptions来直接排除内嵌的类文件。
内容来源于stack exchange
相关产品推荐
相关产品推荐

