Unity导入Firebase SDK时Keystore密钥读取失败问题求助
Unity导入Firebase SDK后Android Keystore验证失败解决方案
问题概况
- 涉及Unity版本:2021.1.5f1、2021.3.14f1
- 目标平台:Android
- 核心症状:导入Firebase SDK后,Keystore验证弹窗提示
Unable to list keys in the keystore. Please make sure the location and password of the keystore is correct.;确认Keystore路径和密码无误,新建空白项目导入Firebase仍复现该错误,移除所有Firebase包后Keystore验证恢复正常。 - 错误日志关键提示:
Error:Invalid command keytool-list
解决方案
1. 匹配Firebase SDK与Unity版本兼容性
Firebase Unity SDK部分版本与Unity 2021.x存在命令调用兼容性问题,建议:
- 降级Firebase SDK至8.10.0版本(经大量用户验证可解决该命令格式错误)
- 或升级至Firebase官方标注支持Unity 2021.x的最新稳定版本
2. 切换至系统JDK而非Unity内嵌JDK
Unity内嵌JDK与Firebase工具的参数解析可能存在冲突,操作步骤:
- 打开Unity编辑器,进入
Edit > Preferences > External Tools - 找到
Android板块下的JDK选项,取消勾选Use embedded JDK - 手动选择系统中已安装的JDK 8路径(例如环境变量中的
C:\Program Files\Eclipse Foundation\jdk-8.0.302.8-hotspot) - 重启Unity后重新进行Keystore验证
3. 修复Firebase工具的命令参数(进阶操作)
错误日志显示keytool-list是无效命令,正确格式应为keytool -list,可手动修改Firebase脚本:
- 打开项目中
Assets/Firebase/Editor目录,定位调用keytool的相关脚本文件(例如FirebaseAppEditor.cs或类似工具类) - 找到拼接
keytool-list的代码行,将其修改为keytool -list - 保存修改后,重启Unity并重新验证Keystore
4. 清理项目缓存重建
- 删除项目根目录下的
Library、Temp文件夹 - 重新打开Unity项目,重新导入Firebase SDK
- 再次尝试Keystore验证操作
完整错误日志
Unable to list keys in the keystore. Please make sure the location and password of the keystore is correct. C:\Program Files\Unity\Hub\Editor\2021.3.14f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin\java.exe -Xmx4096M -Dcom.android.sdkmanager.toolsdir="C:\Program Files\Unity\Hub\Editor\2021.3.14f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools" -Dfile.encoding=UTF8 -jar "C:/Program Files/Unity/Hub/Editor/2021.3.14f1/Editor/Data/PlaybackEngines/AndroidPlayer/Tools\sdktools.jar" - Environment Variables: RlsSvcPort = 22112 USERDOMAIN = BOOM ProgramFiles = C:\Program Files TMP = C:\Users\love-\AppData\Local\Temp Sys64Compilator = 5f7953b329bq95cb59798118e2ae7333 PROCESSOR_ARCHITECTURE = AMD64 PROCESSOR_REVISION = a502 OS = Windows_NT CHROME_CRASHPAD_PIPE_NAME = \\.\pipe\crashpad_17384_GUBCNOBMVGWWFSIC PROCESSOR_IDENTIFIER = Intel64 Family 6 Model 165 Stepping 2, GenuineIntel ProgramW6432 = C:\Program Files USERPROFILE = C:\Users\love- JAVA_HOME = C:\Program Files\Unity\Hub\Editor\2021.1.5f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK CommonProgramFiles = C:\Program Files\Common Files DriverData = C:\Windows\System32\Drivers\DriverData ComSpec = C:\Windows\system32\cmd.exe TEMP = C:\Users\love-\AppData\Local\Temp PSModulePath = C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules PUBLIC = C:\Users\Public SystemRoot = C:\Windows NUMBER_OF_PROCESSORS = 8 JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF-8 FPS_BROWSER_APP_PROFILE_STRING = Internet Explorer HOMEDRIVE = C: ACSetupSvcPort = 23210 Path = C:\Program Files\Eclipse Foundation\jdk-8.0.302.8-hotspot\bin;C:\Program Files (x86)\VMware\VMware Player\bin\;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\dotnet\;C:\Program Files\Unity\Hub\Editor\2021.1.5f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin;C:\Python27;C:\Users\love-\AppData\Local\Microsoft\WindowsApps;C:\Users\love-\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\love-\.dotnet\tools;C:\Program Files\Unity\Hub\Editor\2021.1.5f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin;C:\Python27; ACSvcPort = 17532 USERNAME = love- COMPUTERNAME = BOOM PATHEXT = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC ALLUSERSPROFILE = C:\ProgramData SystemDrive = C: windir = C:\Windows FPS_BROWSER_USER_PROFILE_STRING = Default ZES_ENABLE_SYSMAN = 1 CommonProgramFiles(x86) = C:\Program Files (x86)\Common Files APPDATA = C:\Users\love-\AppData\Roaming OneDrive = C:\Users\love-\OneDrive PROCESSOR_LEVEL = 6 CommonProgramW6432 = C:\Program Files\Common Files ProgramFiles(x86) = C:\Program Files (x86) NVIDIAWHITELISTED = 0x01 SESSIONNAME = Console LOGONSERVER = \\BOOM LOCALAPPDATA = C:\Users\love-\AppData\Local HOMEPATH = \Users\love- SHIM_MCCOMPAT = 0x810000001 USERDOMAIN_ROAMINGPROFILE = BOOM ProgramData = C:\ProgramData ORIGINAL_XDG_CURRENT_DESKTOP = undefined stderr[ Error:Invalid command keytool-list Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 ] stdout[ ] exit code: 64 UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
内容的提问来源于stack exchange,提问作者ahmad
相关产品推荐
相关产品推荐

