Unity 2022.3.11集成Firebase打包Android应用失败求助
Unity 2022.3.11集成Firebase Android打包失败问题解决
错误原因
这个报错核心是Android Gradle Plugin(AGP)与Unity自带Gradle版本不兼容。Unity 2022.3.11默认使用Gradle 7.2,而Firebase SDK可能引入了更高版本的AGP,新版本AGP中的AndroidComponentsExtension.registerSourceType()抽象方法无法被旧Gradle版本兼容,导致Gradle构建时无法生成对应的装饰类,最终触发构建失败。
解决方法
1. 强制统一AGP版本到兼容版本
Unity 2022.3.x官方推荐兼容的AGP版本为7.0.4,需通过自定义Gradle模板固定版本:
- 打开Unity Editor,依次进入
Edit > Project Settings > Player > Android > Publishing Settings,勾选Custom Main Gradle Template。 - 找到项目中的
Assets/Plugins/Android/mainTemplate.gradle文件,修改buildscript下的dependencies块:buildscript { repositories { google() mavenCentral() } dependencies { // 固定AGP版本为7.0.4,匹配Unity自带的Gradle 7.2 classpath 'com.android.tools.build:gradle:7.0.4' // Firebase Google服务插件版本需与AGP兼容,这里用4.3.15 classpath 'com.google.gms:google-services:4.3.15' } }
2. 开启AndroidX兼容
Firebase SDK依赖AndroidX,需在Gradle配置中开启:
- 在Publishing Settings中勾选Custom Gradle Properties Template,打开
Assets/Plugins/Android/gradle.properties,添加以下配置:android.useAndroidX=true android.enableJetifier=true
3. 清理项目缓存
删除Unity项目下的Temp、Library/Bee、Library/Android文件夹,重新生成项目构建文件,避免旧缓存干扰。
4. 匹配Firebase SDK版本
确保使用的Firebase Unity SDK版本兼容Unity 2022.3.x,推荐使用9.0.0及以上版本(替换项目中旧的Firebase插件即可)。
完整Unity集成Firebase并打包的操作步骤
1. 前期准备
- 安装Unity 2022.3.11f1,并确保勾选Android Build Support模块(包含OpenJDK、Android SDK、NDK组件)。
- 在Firebase控制台创建项目,添加Android应用(填写与Unity项目一致的包名),下载
google-services.json文件。
2. 集成Firebase SDK
- 下载对应Unity版本的Firebase SDK(按需选择Analytics、Auth、Database等模块),解压后将
Plugins文件夹拖入Unity项目根目录。 - 将
google-services.json放入Assets/Plugins/Android目录。
3. Unity项目核心设置
- Player设置:进入
Edit > Project Settings > Player > Android,设置Package Name与Firebase控制台一致;将Minimum API Level设为Android 9.0(API 28)及以上。 - Gradle模板配置:
- 按前文步骤勾选并修改
mainTemplate.gradle,固定AGP版本并添加Firebase服务插件。 - 修改
gradle.properties开启AndroidX和Jetifier。
- 按前文步骤勾选并修改
- 其他设置:在
Publishing Settings中,确保Build System选择Gradle(而非Internal)。
4. 打包测试
- 清理项目缓存(删除Temp、Library/Bee、Library/Android)。
- 打开
File > Build Settings,切换到Android平台,点击Build或Build and Run完成打包。
内容的提问来源于stack exchange,提问作者Choco Naak
相关产品推荐
相关产品推荐

