Unity打包Android时Firebase配置读取失败,求解决方案
解决Unity打包Android时Firebase配置读取失败的问题
可行解决方案:
- 重新导入完整的Firebase Unity SDK:下载对应Unity版本的Firebase SDK,确保Android相关的gradle插件、配置模板等文件全部导入,避免SDK缺失导致构建时无法识别
google-services.json。 - 手动生成并配置mainTemplate.gradle:在Unity的
Player Settings > Publishing Settings > Build中勾选Custom Gradle Template,Unity会自动在Assets/Plugins/Android目录生成mainTemplate.gradle。在文件的dependencies块上方添加apply plugin: 'com.google.gms.google-services',同时确保文件顶部的buildscript > dependencies中包含classpath 'com.google.gms:google-services:4.3.15'(或兼容的最新版本)。 - 修正google-services.json的存放位置:仅将
google-services.json放在Assets/Plugins/Android目录下,删除其他位置的副本,避免配置冲突。同时确认文件在Unity Project窗口中正常显示,无错误标记。 - 核对包名匹配性:打开
google-services.json,确认client > client_info > android_client_info > package_name的值与UnityPlayer Settings > Identification > Package Name完全一致,大小写也必须匹配。 - 清理缓存后重新构建:删除Unity项目的
Library、Temp目录,以及Android构建输出的Build文件夹,重新导入Firebase SDK后再尝试打包。 - 代码显式初始化Firebase:如果自动读取配置始终失败,可在代码中手动传入配置参数初始化,示例代码如下:
using Firebase; using UnityEngine; public class FirebaseInit : MonoBehaviour { void Start() { var firebaseOptions = new FirebaseOptions { ApiKey = "你的API_KEY", AppId = "你的APP_ID", ProjectId = "你的PROJECT_ID", AuthDomain = "你的AUTH_DOMAIN", StorageBucket = "你的STORAGE_BUCKET", MessagingSenderId = "你的MESSAGING_SENDER_ID" }; if (FirebaseApp.DefaultInstance == null) { FirebaseApp.Create(firebaseOptions); } } }
上述参数均可从google-services.json中提取对应字段值。
内容的提问来源于stack exchange,提问作者Itai Elidan
相关产品推荐
相关产品推荐

