Unity编辑器中正常运行的Firebase为何无法在PICO 4头显上工作?
问题背景
在Unity编辑器中Firebase功能完全正常,可正常读写数据,但打包到PICO 4(ARM64架构Android设备)后,出现无法加载FirebaseCppApp_11_4_0.dll的错误。已确认文件存在于Assets/Firebase/FirebaseCppApp目录,且尝试替换对应架构插件、重启Unity和重建项目后问题仍存在。
初始化代码如下:
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => { var dependencyStatus = task.Result; if (dependencyStatus == Firebase.DependencyStatus.Available) { app = Firebase.FirebaseApp.DefaultInstance; auth = FirebaseAuth.DefaultInstance; firestore = FirebaseFirestore.DefaultInstance; dbReference = FirebaseDatabase.DefaultInstance.RootReference; FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLogin); } else { Debug.LogError(System.String.Format( "Could not resolve all Firebase dependencies: {0}", dependencyStatus)); } }); Debug.Log("Completed Init"); FirebaseConnectionStatusText.text = "Connected";
具体解决步骤
检查插件的平台架构配置
找到Assets/Firebase/FirebaseCppApp下的FirebaseCppApp-11_4_0插件,打开Inspector面板:- 仅勾选Android平台,Android的CPU选项里只保留
ARM64(取消x86、x86_64的勾选) - 确认插件的Load Type设置为
Load on Demand或Preload,避免打包时被Unity误剔除
- 仅勾选Android平台,Android的CPU选项里只保留
验证SDK版本兼容性
检查Firebase Unity SDK版本是否支持ARM64 Android设备,同时确认该版本与你的Unity版本、PICO SDK版本兼容。建议尝试切换到Firebase官方标注的稳定版本(比如11.3.0或11.5.0),重新导入SDK后再打包测试。调整Android打包核心设置
- 进入
File > Build Settings > Player Settings > Android > Other Settings:- 将Scripting Backend设置为
IL2CPP(PICO设备推荐使用IL2CPP,Mono易出现兼容性问题) - 确认Target Architectures仅勾选
ARM64
- 将Scripting Backend设置为
- 确保Minimum API Level符合Firebase SDK要求(通常为Android 9.0及以上)
- 进入
排查Gradle依赖配置
打开Player Settings > Android > Publishing Settings,勾选Custom Main Gradle Template和Custom Base Gradle Template,检查生成的gradle文件中是否包含Firebase的依赖项。如果缺失,手动添加对应版本的依赖(例如com.google.firebase:firebase-app-unity:11.4.0),确保打包时能正确引入原生库。清理缓存与构建残留
- 备份项目后删除
Library文件夹(Unity缓存目录) - 删除之前的构建输出文件夹,重新执行构建
- 在Unity中执行
Assets > Reimport All,确保所有资源正确导入
- 备份项目后删除
确认设备权限
在Unity的Player Settings > Android > Other Settings > Configuration中,将Internet Access设置为Require,保证APK在PICO设备上拥有联网权限(Firebase功能依赖网络)
内容的提问来源于stack exchange,提问作者Volearix

