You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity 2022.3.11 Android端Firebase.FirebaseApp初始化异常排查

解决Unity中Firebase初始化异常:"The type initializer for 'Firebase.FirebaseApp' threw an exception"

针对你使用Unity 2022.3.11开发安卓应用时遇到的Firebase初始化错误,以下是对应问题的解答:

1. 错误的成因

这个类型初始化异常通常由以下几种原因导致:

  • 核心配置缺失:未正确放置或配置google-services.json文件,或者文件中的包名与Unity项目设置的包名不匹配
  • 依赖冲突/不兼容:Unity的Android依赖(如AndroidX)与Firebase SDK的依赖版本冲突,或Firebase SDK版本与Unity 2022.3.11不兼容
  • 构建资源未正确打包:Gradle构建过程中,Firebase的核心AAR包或资源未被正确引入到APK中
  • 权限缺失:设备缺少网络权限(Firebase初始化需要联网验证配置),或Unity项目未声明INTERNET权限
  • 初始化时机问题:在Unity的早期生命周期(如Awake)中调用Firebase初始化,此时Android环境尚未完全就绪

2. 是构建配置问题还是Firebase包内容问题?

两者都有可能,但结合你已通过External Dependency Manager处理Gradle模板并配置了AndroidX,更偏向构建配置问题,但仍需先排查包内容:

  • 先确认Firebase Unity SDK是否完整导入:检查Assets目录下是否有Firebase/Core等核心模块,若无则重新导入对应版本的SDK
  • 验证google-services.json是否放在Assets/Plugins/Android目录下,且文件中的package_name与Unity Player设置里的包名完全一致
  • 若包内容无问题,则重点排查构建配置和依赖冲突

3. Gradle配置调整方案

基于你已生成的Gradle模板,可按以下步骤调整:

(1)检查baseProjectTemplate.gradle

确保allprojects.repositories中包含Google和Maven中央仓库:

allprojects {
    repositories {
        google()
        mavenCentral()
        flatDir {
            dirs "${project(':unityLibrary').projectDir}/libs"
        }
    }
}

(2)调整mainTemplate.gradle

  • 确保文件末尾添加了Google Services插件:
    apply plugin: 'com.google.gms.google-services'
    
  • 添加依赖版本统一策略,避免冲突:
    configurations.all {
        resolutionStrategy {
            // 替换为你使用的Firebase和Google Play Services对应版本
            force 'com.google.firebase:firebase-core:21.1.1'
            force 'com.google.android.gms:play-services-base:18.2.0'
        }
    }
    

(3)优化gradleTemplate.properties

除已有的AndroidX配置,添加内存优化参数:

android.useAndroidX=true
android.enableJetifier=true
org.gradle.jvmargs=-Xmx4096m

(4)Unity Player设置验证

  • 确认Player设置 > 其他设置中,Custom Main Gradle Template、Custom Base Gradle Template等选项已勾选
  • 检查包名与google-services.json中的package_name完全一致
  • 确保最小API级别不低于Firebase SDK要求(通常为API 16及以上)

(5)排查辅助步骤

  • 查看Logcat详细日志:该异常通常包含内部嵌套异常,通过Logcat可以定位具体缺失的类或依赖
  • 临时禁用自定义Gradle模板:移除Assets/Plugins/Android下的四个模板文件,让Unity自动生成默认配置,测试是否能正常构建
  • 清理构建缓存:通过Unity菜单File > Build Settings > Clean Build Folder清理缓存后重新构建

内容的提问来源于stack exchange,提问作者Choco Naak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 19:03:17