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

Unity中Admob与Firestore冲突致FirebaseApp初始化失败求助

解决Unity中Admob与Firestore共存时的构建冲突及Firestore初始化失败问题

问题回顾

在Unity中集成Admob和Firestore后,APK构建时遇到Manifest冲突错误:

property#android.adservices.AD_SERVICES_CONFIG@resource=@xml/gma_ad_services_config` in com.google.android.gms:play-services-measurement-api:22.1.2 collides with another value

添加tools:replace处理后构建成功,但Firestore无法使用,Logcat报错:

Default FirebaseApp failed to initialize because no default options were found.

解决方案

1. 修正AndroidManifest.xml配置

首先检查并修正之前添加的<property>标签,确保引号为英文,同时确认Manifest根标签包含tools命名空间:

<!-- 在<manifest>标签中添加tools命名空间 -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="你的应用包名">

    <!-- 修正后的AD_SERVICES_CONFIG配置 -->
    <property
        android:name="android.adservices.AD_SERVICES_CONFIG"
        android:resource="@xml/gma_ad_services_config"
        tools:replace="android:resource" />
</manifest>

该配置仅针对Admob的冲突项进行替换,避免影响Firebase的Manifest配置。

2. 确保google-services.json文件正确放置

从Firebase控制台下载对应应用包名的google-services.json文件,将其放置在Unity项目的Assets/Plugins/Android目录下。Unity会自动将该文件同步到Android构建项目中,Firebase依赖此文件完成初始化配置。

3. 手动初始化Firebase

若自动初始化失败,在Unity代码中添加手动初始化逻辑,确保依赖加载完成后再初始化Firestore:

using Firebase;
using Firebase.Firestore;
using UnityEngine;
using System.Threading.Tasks;

public class FirebaseSetup : MonoBehaviour
{
    private void Start()
    {
        InitializeFirebase();
    }

    private async void InitializeFirebase()
    {
        var dependencyStatus = await FirebaseApp.CheckAndFixDependenciesAsync();
        if (dependencyStatus == DependencyStatus.Available)
        {
            // 初始化Firestore实例
            FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
            Debug.Log("Firebase及Firestore初始化成功");
        }
        else
        {
            Debug.LogError($"Firebase依赖加载失败: {dependencyStatus}");
        }
    }
}

将此脚本挂载到启动场景的常驻GameObject上。

4. 清理并重新解析依赖

  • 打开Unity的External Dependency Manager:Window > Package Manager > External Dependency Manager > Android Resolver > Resolve,让工具自动处理依赖冲突,确保所有Firebase和Admob的依赖版本兼容。
  • 移除gradle中重复的依赖项(例如androidx.constraintlayout:constraintlayout出现了两次,保留其中一行即可)。

5. 清理构建缓存

  • 在Unity中执行:File > Build Settings > Android > Clean Build,清理旧的构建缓存。
  • 进入unityLibrary目录,运行命令gradlew clean清理Android项目缓存,之后重新构建APK。

内容的提问来源于stack exchange,提问作者Cemal Ok

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 03:23:15