【问题标题】:Get Android NDK crash reports with Unity 2019.3+使用 Unity 2019.3+ 获取 Android NDK 崩溃报告
【发布时间】:2020-06-30 11:05:33
【问题描述】:

自 Unity 2019.3 以来,Android 构建过程发生了变化,现在 gradle 项目包含两个模块 - unityLibrary 模块和启动器模块。

我无法上传原生符号,因为我无法将插件应用到 unityLibrary 模块,并且只能在启动器中使用。有什么方法可以实现吗?

当我运行仅存在于启动器模块上的 uploadCrashlyticsSymbolFileRelease 任务时,我收到此错误:

Could not find the file generated by Google Services. Please check your Firebase project configuration

配置文件在 unityLibrary 模块中。

有没有办法将任务移动到 unityLibrary 模块?如果我将 crashlytics 插件移动到 unityLibray 模块,则错误变为:

Crashlytics was applied to a project without an Android plugin. Please make sure the Crashlytics plugin is applied after the appropriate Android plugin for your project.

【问题讨论】:

    标签: android firebase unity3d crashlytics


    【解决方案1】:

    棘手的一点是 Firebase 仍然与不支持 gradle 集成的 Unity 版本兼容。因此,Unity 中的构建管道重新实现了functionality of the google services plugin(即生成values.xml 文件)。

    我个人一些努力按摩mainTemplate.gradle 文件以使用gradle 插件,但还没有让NDK 上传工作。一些可能有帮助的注意事项:

    • External Dependency Manager for Unity (EDM4U) 将更新mainTemplate.gradle 文件(如果可用),但还将处理google-services.json 并将输出放入Assets/Plugins/Android。您可能需要运行一次以生成依赖项,删除 values.xml,然后禁用 EDM4U 以防止它重新生成该文件。
    • Unity SDK 基于 C++,绑定 C#、C++ 和 Java 的 aar 归档打包到您的 Assets 目录中的本地 maven 存储库中。这将使您的项目在生成后很难重新定位(即:尽可能在 Unity 方面完成所有工作)。
    • 因为您会短路 Firebase 对 values.xml 的处理以使用该插件,所以您需要确保 google-services.json 确实将其添加到您的 Android 源树中。 Assets/StreamingAssets 可能会自动执行此操作,但您可能必须编写构建脚本才能将其复制过来。

    最后,团队意识到需要在 Unity Crashlytics 插件中调试 NDK 代码。没有任何可用的公开时间表,但打开issue on the quickstartposting to the mailing list might 代替一个好的答案可能是尝试完成整个过程的好方法。

    【讨论】:

      猜你喜欢
      • 2019-09-15
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 2018-09-05
      相关资源
      最近更新 更多