Unity解决UnityAds与protobuf依赖冲突及避免Android Resolver覆盖方案
解决Unity中UnityAds与其他依赖的Protobuf冲突(避免Android Resolver覆盖修改)
方法一:用Android Resolver自定义依赖规则(推荐)
这是最稳妥的方式,让Android Resolver自动应用排除规则,不会覆盖你的修改:
- 打开Unity项目的
Assets/ExternalDependencyManager/Editor目录 - 创建或编辑
CustomDependencies.xml文件,写入以下内容:
<dependencies> <androidPackages> <androidPackage spec="com.unity3d.ads:unity-ads:4.9.2"> <excludeGroup>com.google.protobuf</excludeGroup> <excludeModule>protobuf-javalite</excludeModule> </androidPackage> </androidPackages> </dependencies>
- 之后每次Android Resolver解析依赖时,都会自动给UnityAds加上排除规则,不用手动改gradle模板
方法二:锁定mainTemplate.gradle为只读(应急方案)
如果暂时不想改配置文件,可以直接锁定模板文件:
- 在Unity项目中找到
mainTemplate.gradle,右键后在Inspector面板勾选Read Only - 注意:后续要更新gradle模板或UnityAds版本时,得先取消只读,否则会导致依赖解析失败
方法三:Gradle全局排除规则
如果确认所有依赖都不需要protobuf-javalite,可以在mainTemplate.gradle里加全局排除:
- 找到
allprojects代码块,添加配置:
allprojects { configurations.all { exclude group: 'com.google.protobuf', module: 'protobuf-javalite' } }
- 这个方法会让所有依赖都排除该模块,适合全局无需求的场景,否则可能引发其他依赖问题
内容的提问来源于stack exchange,提问作者Montolide
相关产品推荐
相关产品推荐

