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

Unity集成Firebase遇DllNotFoundException问题求助

排查方案

1. 修复Gradle的PackagingOptions架构排除规则

你的Gradle配置中排除了所有安卓架构的Native库(.so文件),这直接导致Firebase核心Native库无法被打包进APK,运行时自然找不到FirebaseCppApp-10_3_0。修改packagingOptions,保留目标设备对应的架构:

android {
  packagingOptions {
      exclude '/lib/armeabi/*'
      exclude '/lib/mips/*'
      exclude '/lib/mips64/*'
      exclude '/lib/x86/*'
      exclude '/lib/x86_64/*'
      // 保留ARM架构(根据测试设备/发布需求调整)
      // 如果只支持64位设备,可添加 exclude '/lib/armeabi-v7a/*'
  }
}

2. 确认Firebase Native库存在

检查项目目录Assets/Firebase/Plugins/Android/下,是否包含对应架构的文件夹(如armeabi-v7a、arm64-v8a),且文件夹内存在libFirebaseCppApp-10_3_0.so(或9.6.0版本对应文件名)。如果缺失:

  • 重新导入对应版本的Firebase Unity SDK,确保导入过程无报错;
  • 若仍缺失,手动从Firebase官方SDK包中提取对应架构的Native库放入该目录。

3. 修正Unity Player Settings的架构配置

在Unity编辑器中打开Player Settings > Android > Other Settings:

  • 确认Target Architectures勾选了测试设备对应的架构(一般安卓手机为ARM64或ARMv7,不要只勾选x86系列);
  • 确保Scripting Backend设置为IL2CPP(Firebase Unity SDK对IL2CPP支持更稳定)。

4. 统一Firebase依赖版本

你的Gradle依赖中存在版本不匹配问题:firebase-analytics:21.1.1与firebase-analytics-unity:9.6.0版本不兼容,可能导致依赖解析异常。建议:

  • 不要手动修改Gradle依赖,直接使用Firebase Unity SDK自带的Dependencies.xml管理依赖;
  • 若必须手动配置,确保所有Firebase相关依赖(如firebase-app-unity、firebase-analytics-unity、firebase-crashlytics-unity)版本完全一致,且与对应的安卓核心库版本匹配。

5. 验证APK内容

用解压工具打开生成的APK,检查lib/[目标架构]/目录下是否存在libFirebaseCppApp-xx_xx_xx.so文件:

  • 如果不存在,说明打包过程中未正确包含Native库,回到步骤1-4排查;
  • 如果存在,说明库已打包,问题可能出在加载逻辑或设备兼容性。

6. 清理缓存后重新构建

  • 删除Unity项目根目录下的Library文件夹,清理Unity缓存;
  • 删除项目根目录下的.gradle文件夹,清理Gradle缓存;
  • 重启Unity,重新执行Firebase > CheckAndFixDependencies,然后重新构建APK。

7. 检查Firebase初始化代码

确保代码中正确处理Firebase初始化流程,避免异步初始化逻辑遗漏:

using Firebase;
using Firebase.Analytics;
using UnityEngine;

public class FirebaseInit : MonoBehaviour
{
    void Start()
    {
        FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
        {
            if (task.IsCompletedSuccessfully)
            {
                var status = task.Result;
                if (status == DependencyStatus.Available)
                {
                    FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);
                    Debug.Log("Firebase 初始化完成");
                }
                else
                {
                    Debug.LogError($"Firebase 依赖缺失: {status}");
                }
            }
            else
            {
                Debug.LogError($"Firebase 初始化失败: {task.Exception}");
            }
        });
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:15:26