Unity构建Android AAB时Gradle属性冲突错误求助
解决Unity中com.google.android.play.core版本冲突导致的AAB构建错误
以下是针对你遇到的com.google.android.play.core版本冲突问题的可行解决方案,按优先级排序:
1. 强制Gradle使用统一版本(最推荐)
Unity构建Android项目时,不同插件会自动引入各自依赖的库,导致版本不一致。通过Gradle配置强制统一版本可以彻底解决冲突:
- 打开Unity的
Player Settings>Publishing Settings>Build,勾选Custom Gradle Template,生成Assets/Plugins/Android/mainTemplate.gradle文件。 - 打开该文件,在
dependencies代码块上方添加以下配置:configurations.all { resolutionStrategy.force 'com.google.android.play:core:1.10.3' } - 这段代码会让Gradle忽略所有依赖库引入的旧版本
play core,强制使用指定的1.10.3版本,从而消除meta-data值冲突。
2. 排查隐藏的依赖来源
你找不到core-1.10.0.aar,是因为该库可能被打包在Cross Platform Native Plugins的内部资源中,而非单独的aar文件:
- 用命令行定位依赖来源:在项目根目录执行(Windows用
gradlew.bat dependencies,Mac/Linux用./gradlew dependencies),查看输出中所有包含com.google.android.play:core的条目,确认哪个插件引入了1.10.0版本。 - 如果是Cross Platform Native Plugins导致的,尝试:
- 打开插件的设置面板,查看是否有禁用自动引入Play Core的选项;
- 更新插件到最新版本,官方可能已经修复了依赖版本不一致的问题。
3. 修正AndroidManifest的tools:replace配置
如果你之前的Manifest配置有误,按以下步骤调整:
- 确保
AndroidManifest.xml的根<manifest>标签包含tools命名空间声明:<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="你的应用包名"> - 在
<application>标签中添加tools:replace属性,指定替换冲突的meta-data:<application ... tools:replace="com.google.android.play.core.assetpacks.versionCode">
4. 清理缓存后重新构建
缓存残留可能导致配置不生效,执行以下操作:
- 清理Unity缓存:
Edit > Preferences > Cache Server > Clear Cache,或直接删除项目根目录的Library文件夹(操作前备份项目); - 清理Gradle缓存:删除用户目录下的
.gradle文件夹(Windows:C:\Users\你的用户名\.gradle;Mac:~/.gradle); - 重新构建AAB文件。
内容的提问来源于stack exchange,提问作者kbunarjo
相关产品推荐
相关产品推荐

