Unity构建Android应用时APP_ID带\引发Manifest合并失败修复咨询
修复Unity Gradle构建中APP_ID带反斜杠的Manifest合并冲突问题
实用修复步骤:
1. 排查Gley插件配置与生成文件
- 打开Gley's Mobile Tool的设置面板,找到AdMob/Google Play Games的APP_ID输入框,重新手动输入一遍ID并保存——部分插件在配置存储时会错误添加转义符,重新输入可覆盖异常配置。
- 到
Plugins/Android目录下的Gley相关子文件夹中,查找插件自动生成的Manifest片段文件,搜索<meta-data>标签里的APP_ID,若发现带\的情况,直接手动删除转义符后保存,再尝试构建。
2. 自定义Gradle模板自动清理转义符
- 开启Unity自定义Gradle模板:进入
Edit > Project Settings > Player > Android > Publishing Settings,勾选Custom Main Gradle Template和Custom Base Gradle Template。 - 打开生成的
mainTemplate.gradle,在android代码块内添加以下任务,构建时自动去除Manifest中的多余反斜杠:
android { // 保留原有配置... applicationVariants.all { variant -> variant.outputs.each { output -> output.processManifest.doLast { def manifestFile = output.processManifest.manifestOutputFile def content = manifestFile.getText('UTF-8') // 替换为你的实际APP_ID content = content.replaceAll("\\\\\"ca-app-pub-xxxxxxx\"", "\"ca-app-pub-xxxxxxx\"") manifestFile.write(content, 'UTF-8') } } } }
3. 检查Unity核心配置
- 进入
Edit > Project Settings > Player > Android > Other Settings,确认Package Name正确,同时检查Custom Manifest中是否手动配置了重复的APP_ID项,避免冲突。 - 打开
Window > Google Mobile Ads > Settings,确认APP_ID输入框内没有多余的转义字符或空格。
4. 清理缓存与临时文件
- 删除项目根目录下的
Temp和Library文件夹,重启Unity后重新导入所有资源,清除Unity本地构建缓存。 - 清理Gradle缓存:Windows用户删除
C:\Users\[你的用户名]\.gradle\caches\7.5.1,Mac用户删除~/.gradle/caches/7.5.1,避免旧缓存干扰构建。
5. 调整插件版本兼容性
- 暂时降级Gley's Mobile Tool到之前能正常构建的版本,排查是否为新版本插件的bug导致。
- 检查GoogleMobileAds v9.5.0与GooglePlayGamesPlugin 2.0.0的兼容性,尝试将GoogleMobileAds升级到v20+的稳定版本(需适配Unity 2022.3版本)。
内容的提问来源于stack exchange,提问作者1pcWatermelon
相关产品推荐
相关产品推荐

