首页 > 解决方案 > Unity Firebase 插件失败(加载 Python DLL 时出错:错误代码 14001)

问题描述

我想使用 Firebase Analytics在 Unity 中构建我的ANDROID游戏。但是,当我按照文档和说明操作时,在 google-services.json 到 google-services.xml 操作期间,它失败并说:

Generation of the Firebase Android resource file google-services.xml from Assets/google-services.json failed.
If you have not included a valid Firebase Android resources in your app it will fail to initialize.
`E:/UnityProjects/Seven/Assets\..\Assets/Firebase/Editor/generate_xml_from_google_services_json.exe -i "Assets/google-services.json" -l`.

Error loading Python DLL: C:\Users\ftb\AppData\Local\Temp\_MEI59722\python27.dll (error code 14001)

因此,它永远不会提取我的包名进行初始化,然后它就会崩溃。

环境

操作系统: Windows 7

Unity 版本: 2019.2.16f1(Android Build Support 和 IOS Build Support)

视觉工作室安装:

在此处输入图像描述

Firebase SDK: Firebase Unity SDK 6.8.0 (dotnet4)

包: FirebaseAnalytics.unitypackage

我试过的

1-我怀疑并检查了 google-services.json。该文件是正确的(从firebase仪表板下载)

2-我已经安装了 dotnet3 firebase sdk 包,但失败了。

3-我通过cmd触发了generate_xml_from_google_services_json.exe文件,然后得到了与unity相同的结果(加载Python DLL时出错:C:\Users\ftb\AppData\Local\Temp_MEI59722\python27.dll(错误代码14001))

4-我在没有任何参数的情况下触发了 generate_xml_from_google_services_json.exe(没有这个:-i "C:\gsoogle-services.json" -l),然后它完全响应相同的结果,“加载 Python DLL 时出错”

5-我将Firebase SDK附带的所有“编辑器”文件夹移动到另一台机器(Windows Server 2016)并通过cmd触发google_services_json.exe,然后它成功提取了我的包名,没有错误

6-安装了Windows提供的几个可再发行包,尝试并失败。

7-安装了 Visual Studio 构建工具、Visual Studio Community 2017、C++ 和桌面构建工具,尝试过但失败了。

8- Windows 7 是最新的。已安装所有更新

9-安装python27,python36

10- 将 python27.dll 复制到 System、System32 和 SysWOW64 windows 文件夹。它仍然失败。

根据上面的列表,我认为问题出在我电脑的环境设置或操作系统上。所有问题都在执行 generate_xml_from_google_services_json.exe 文件。它所做的只是将 google-services.json 转换为 google-services.xml

是否无法在 Windows 7 上使用 Firebase Unity SDK?有没有办法解决这个问题?

标签: pythonwindowsfirebaseunity3dgoogle-play-services

解决方案


从另一个Stack Overflow 问题来看,这似乎是一个可能与 Windows 7 相关的错误。

简而言之,Firebase 的部分预处理管道确实依赖 Python(正如您可能推断的那样)。在 MacOS 和 Linux 上,假设您的操作系统安装和维护了 python(这可能是一个非常安全的假设)。在 Windows 上,虽然运行 Visual Studio 的 Windows 开发人员可能已经安装了 Python,但这远不能保证(如果已安装,则不能保证在$PATH&c 中)。

大多数 Firebase 用户的最佳解决方法是构建和部署 Python 环境来运行此工具。看起来这个过程生成了一个可以在较新版本的 Windows 但不一定是 Windows 7 上运行的文件。您可以通过安装较新的 Windows CRT 立即解决这个问题(例如,这个 可能工作),但那是远非理想的体验。

看起来最好的解决方案可能就像让 firebase 团队使用 构建一样简单--win-private-assemblies,但它也可能涉及更多。出于这个原因,我会要求您直接在 Firebase 支持上提交票证,或者在Firebase Unity GitHub存储库上提交问题,以便遇到这篇文章的其他人可以遵循该过程。

我希望这有帮助!

——帕特里克


推荐阅读