【问题标题】:Unity Firebase plugin Fails as (Error loading Python DLL: error code 14001)Unity Firebase 插件失败(加载 Python DLL 时出错:错误代码 14001)
【发布时间】:2019-12-16 13:41:16
【问题描述】:

我想使用 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 构建支持和 IOS 构建支持)

Visul Studio 安装:

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附带的所有“Editor”文件夹移动到另一台机器(Windows Server 2016)并通过cmd触发google_services_json.exe,然后它成功提取了我的包名,没有错误

6- 安装了几个 Windows 提供的 Redistributable Package,尝试失败。

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?有没有办法解决这个问题?

【问题讨论】:

    标签: python windows firebase unity3d google-play-services


    【解决方案1】:

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

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

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

    看起来最好的解决方案可能就像让 firebase 团队使用 --win-private-assemblies 构建一样简单,但它也可能涉及更多。出于这个原因,我想请您file a ticket on Firebase Support directly 或在Firebase Unity GitHub repo 上提出问题,以便其他遇到此帖子的人可以遵循该过程。

    我希望这会有所帮助!

    --帕特里克

    【讨论】:

      【解决方案2】:

      通过将 Unity SDK 降级到 6.7.0 即可解决。它可以正常工作。

      这不是“解决方案”,因此我不会将其签署为“已接受的答案”。我不知道为什么它会发生在 6.8.0 上。检查@Pux0r3 的答案。

      如果在我降级到 6.7.0 时它仍然有效,这意味着它不是环境的直接原因。所以这是一个错误。查看 6.8.0 的发行说明:

      修复了从 google-services.json 生成资源的问题 如果使用 python3 执行资源生成会失败 脚本。

      顺便说一句,2019 年 12 月 16 日,Version 6.8.1 发布。我还没试过。

      更新

      我测试了 6.9.0 版。结果是一样的。

      【讨论】:

      • 我使用了我的一个旧项目中的“generate_xml_from_google_services_json.exe”文件。它使用 firebase v6.2.1 并且可以正常工作。 github repo 中有关于重新编译 python 脚本的建议。我自己没试过。你可以在这里查看; github.com/firebase/quickstart-unity/issues/…
      猜你喜欢
      • 2015-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 2011-05-03
      • 2020-10-31
      • 2016-01-09
      相关资源
      最近更新 更多