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
相关产品推荐
相关产品推荐

