引入Admob Mediation Test Suite后出现flexbox类重复报错如何解决
类重复冲突解决方法
冲突原因
这个问题是不同依赖引入的Flexbox库所属maven坐标不同,但内部类路径完全一致导致的:
com.google.android.gms:play-services-ads:20.4.0依赖的是新版Flexbox,坐标为com.google.android.flexbox:flexbox:3.0.0com.google.android.ads:mediation-test-suite:2.0.0依赖的是旧版Flexbox,坐标为com.google.android:flexbox:1.1.1
两个坐标属于不同的maven包,Gradle无法自动做版本合并,因此会抛出类重复的编译错误。
解决方案
方案1:单独排除Mediation Test Suite的旧版Flexbox依赖
修改mediation-test-suite的引入配置,主动排除其中的旧版Flexbox:
implementation ('com.google.android.ads:mediation-test-suite:2.0.0') { exclude group: 'com.google.android', module: 'flexbox' }
修改完成后重新同步Gradle即可正常编译。
方案2:全局屏蔽旧版Flexbox依赖
如果项目中还有其他第三方依赖也引入了旧版Flexbox,可以在模块级build.gradle文件的android配置块上方添加全局排除规则:
configurations.all { exclude group: 'com.google.android', module: 'flexbox' }
该规则会自动排除所有依赖引入的旧版Flexbox,仅保留项目中使用的3.0.0新版,彻底解决类重复问题。
内容的提问来源于stack exchange,提问作者Syed Irfan Hussaini
相关产品推荐
相关产品推荐

