Unity Firebase Crashlytics未发送任何崩溃报告,logcat上出现“无法检索设置”错误

grizzly_beer
  • Unity编辑器版本:2019.3.15f1
  • Firebase Unity SDK版本:firebase_unity_sdk_6.15.2
  • 其他正在使用的SDK:Unity IAP,Gamesparks,Ironsource,Facebook,Appsflyer,GameAnalytics
  • 在以下平台上使用Unity编辑器的平台即时消息
  • 即时通讯平台:Android
  • 脚本运行时:IL2CPP

问题

我正在获取有关Firebase分析的数据,但无法使crashlytics报告任何内容。我卡在这个...

在此处输入图片说明

重现步骤:

  • 添加Firebase Analytics和crashlytics SDK。

  • 将google-services.json GoogleService-Info.plist文件添加到资产文件夹中的某处

  • 添加此代码以初始化firebase

          // Use this for initialization
      void Start ()
      {
      // Initialize Firebase
      Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
      var dependencyStatus = task.Result;
      if (dependencyStatus == Firebase.DependencyStatus.Available)
      {
      // Create and hold a reference to your FirebaseApp,
      // where app is a Firebase.FirebaseApp property of your application class.
      // Crashlytics will use the DefaultInstance, as well;
      // this ensures that Crashlytics is initialized.
      Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
    
                  // Set a flag here for indicating that your project is ready to use Firebase.
                  VisualDebugger.SetText("crashlytics initialised");
              }
              else
              {
                  UnityEngine.Debug.LogError(System.String.Format(
                    "Could not resolve all Firebase dependencies: {0}",dependencyStatus));
    
                  VisualDebugger.SetText("crashlytics NOT initialised: " + dependencyStatus);
                  // Firebase Unity SDK is not safe to use here.
              }
          });
    
          Invoke("IsCrashEnabled", 5f);
      }
    
      void IsCrashEnabled()
      {
          VisualDebugger.AddLine("IsCrashlyticsCollectionEnabled: "+Firebase.Crashlytics.Crashlytics.IsCrashlyticsCollectionEnabled);
      }
    

为了使该应用程序在安装了Facebook sdk的情况下运行,Ive在Proguard-user.txt中添加了这两行

 -keep public class com.facebook.**{public *; } 
 -keep public class com.facebook.internal.**{ public *; }

并从mainTemplate.gradle中注释掉以下几行

    //implementation 'com.android.support:appcompat-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    //implementation 'com.android.support:customtabs:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    //implementation 'com.android.support:support-v4:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency

当我运行该应用程序时,firebase已成功初始化。Firebase.Crashlytics.Crashlytics.IsCrashlyticsCollectionEnabled也会返回true。

我以多种不同的方式使应用程序崩溃,然后再次打开它而无需重新安装。但没有发送崩溃报告。

当我在启动应用程序时观看logcat时,每次打开应用程序时,我都会从firebase中看到此错误

 2020-09-28 16:18:59.332 25773-25847/? E/FirebaseCrashlytics: Failed to retrieve settings from https://firebase-settings.crashlytics.com/spi/v2/platforms/android/gmp/REDACTEDblahblahblah/settings

在此处输入图片说明

纳塔利娅

2020年10月19日更新:

今天,开发人员更新了我在此答案中链接的问题,称Firebase团队在上周五(10月16日)修复了一个后端错误,该错误影响了一些使用Firebase注册的新Unity Android应用程序-可能是问题背后的错误。我已经使用下面的解决方案在自己的项目中解决了该问题,但是,如果您尚未更新项目,建议再次运行它,看看Crashlytics是否正在为您工作。


我本周在Unity 2019.4.11f1中一直处理相同的问题-我看到相同的错误消息,关于无法检索设置,但URL中包含我的特定项目和appIds。

在这个Github问题中找到了解决方案,这表明问题是由与Unity Firebase Crashlytics软件包相关的android库版本引起的我的粗略理解是,该firebase-crashlytics-unity库是android库的包装firebase:firebase-crashlytics,而unity包允许从Unity使用底层的本机Android代码。版本com.google.firebase:firebase-crashlytics:17.10.0在获取Android上某些Firebase项目的设置时遇到问题。我和跟随此问题的其他几个人发现,迫使Unity使用版本17.1.1的特定依赖关系解决了该问题。

线程中存在相同问题的其他人联系了Firebase支持并被告知:

您看到的“无法检索设置”错误与所使用的SDK版本有关。如果转到“资产> Firebase>编辑器> CrashlyticsDependencies”,则可以手动更新SDK,使其指向最新的Crashlytics SDK版本17.2.2。请尝试一下,如果您仍然遇到问题,请告诉我们。

事实证明,此建议并不完全正确-我们中的一些关注该线程,然后在将Android Crashlytics SDK版本17.2.2与Unity crashlytics版本6.16.0结合使用时遇到了另一个问题因此,我特别建议您在线程中尝试以下建议或其他解决方案,以将您的Android crashlytics库设置为v17.1.1。

我在项目中为解决此问题而进行的更改:

  • 首先,我在软件包管理器中更新了统一的Firebase软件包以使用6.16.0版。在我的项目中,安装了4个软件包-核心,分析,崩溃解析和消息传递。
  • 然后,我搜索了Crashlytics软件包的依赖文件- Crashlytics-Dependencies.xml(通过搜索项目找到的/Library/PackageCache/[email protected]/Firebase/Editor/)对我而言。该文件最初列出了“ com.google.firebase:firebase-crashlytics:17.0.0”,我将其更新为:“ com.google.firebase:firebase-crashlytics:17.1.1”。
  • 作为额外的预防措施,我还根据用户在线程中的建议添加了一个MyProject-Dependencies.xml文件,该文件还指定了版本“ com.google.firebase:firebase-crashlytics:17.1.1”。
  • 接下来,我修改了Unity构建过程,以使用自定义mainTemplate.gradle文件指定依赖关系,而不是使用外部依赖关系解析器来管理和嵌入统一包(“构建设置”>“ PlayerSettings”>“ Android”中的选项)。
  • 我还更新了外部依赖项管理器Android Ressolver上的设置:
    • 在构建时禁用了AutoResolve和Disabled Resolve(我们不希望EDM在构建时不知情的情况下更新依赖项)
    • 我也禁用了AndroidPackageInstallationEnabled-这使解析过程更快,并.aar从android依赖项列表中删除了一堆文件,并且在我的项目中没有引起任何问题。
  • 然后,我运行了“外部依赖关系解析器”>“ Android”>“强制解析”,在上面的设置更改后,现在应该将Android构建的依赖关系列表嵌入到mainTemplate.gradle文件中-检查此文件(在Assets / Plugins / Android中),您应该现在com.google.firebase:firebase-crashlytics:17.1.1在该列表中看到

另外,我建议阅读Firebase开发人员倡导者之一Patrick Martin撰写的有关管理Unity Firebase依赖项的文章。它帮助我全神贯注于Unity中Android依赖项管理的工作方式以及Android gradle构建过程的工作方式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firebase SDK for Unity无法在iOS中编译

来自分类Dev

带有Unity的Firebase在XCode中导致链接器错误

来自分类Dev

iOS上的Firebase崩溃报告无法读取的错误(符号文件)

来自分类Dev

Firebase崩溃报告与Crashlytics / Fabric

来自分类Dev

Firebase崩溃报告与Crashlytics / Fabric

来自分类Dev

Firebase Crashlytics Android NDK:崩溃报告上的空符号

来自分类Dev

Firebase Analytics / Firebase Crashlytics - 报告错误

来自分类Dev

Unity Firebase安全性

来自分类Dev

Unity Firebase SDK SetRawJsonValue 性能

来自分类Dev

Firebase for Unity 是否包含 childByAutoId?

来自分类Dev

Unity 2020和Firebase上的问题(无法解析参考“ UnityEditor.iOS.Extensions.Xcode”)

来自分类Dev

Firebase crashlytics更新后,Android中未出现Firebase崩溃报告

来自分类Dev

当我使用Firebase Unity插件在android中实现FaceBook Auth函数时,它崩溃了

来自分类Dev

是否可以将 Cloud Functions for Firebase 设置为与 Unity 一起使用?

来自分类Dev

如何使用 firebase 和 unity3d 解决“缺少依赖项”错误

来自分类常见问题

在IOS上设置Firebase Crashlytics

来自分类Dev

在IOS上设置Firebase Crashlytics

来自分类Dev

iOS上的Firebase崩溃报告在崩溃后不会发送报告

来自分类Dev

Firebase API问题(适用于Unity)

来自分类Dev

Unity Firebase云消息传递SendAsync丢失

来自分类Dev

Unity Firebase SetCurrentScreen 必须从主线程调用

来自分类Dev

Firebase Database Unity 区分新旧数据

来自分类Dev

Firebase Crashlytics报告

来自分类Dev

禁用Firebase崩溃报告

来自分类Dev

禁用Firebase崩溃报告

来自分类Dev

添加Firebase iOS SDK(4.3.0或更高版本)或Unity插件(6.15.0或更高版本),然后构建,运行并使应用崩溃

来自分类Dev

选择退出 iOS 上的 Firebase 崩溃报告

来自分类Dev

Unity上的GoogleVR出现错误,无法加载libaudioplugingvrunity

来自分类Dev

从 Firebafirebase 崩溃报告旧迁移到 Firebase/Crashlytics

Related 相关文章

  1. 1

    Firebase SDK for Unity无法在iOS中编译

  2. 2

    带有Unity的Firebase在XCode中导致链接器错误

  3. 3

    iOS上的Firebase崩溃报告无法读取的错误(符号文件)

  4. 4

    Firebase崩溃报告与Crashlytics / Fabric

  5. 5

    Firebase崩溃报告与Crashlytics / Fabric

  6. 6

    Firebase Crashlytics Android NDK:崩溃报告上的空符号

  7. 7

    Firebase Analytics / Firebase Crashlytics - 报告错误

  8. 8

    Unity Firebase安全性

  9. 9

    Unity Firebase SDK SetRawJsonValue 性能

  10. 10

    Firebase for Unity 是否包含 childByAutoId?

  11. 11

    Unity 2020和Firebase上的问题(无法解析参考“ UnityEditor.iOS.Extensions.Xcode”)

  12. 12

    Firebase crashlytics更新后,Android中未出现Firebase崩溃报告

  13. 13

    当我使用Firebase Unity插件在android中实现FaceBook Auth函数时,它崩溃了

  14. 14

    是否可以将 Cloud Functions for Firebase 设置为与 Unity 一起使用?

  15. 15

    如何使用 firebase 和 unity3d 解决“缺少依赖项”错误

  16. 16

    在IOS上设置Firebase Crashlytics

  17. 17

    在IOS上设置Firebase Crashlytics

  18. 18

    iOS上的Firebase崩溃报告在崩溃后不会发送报告

  19. 19

    Firebase API问题(适用于Unity)

  20. 20

    Unity Firebase云消息传递SendAsync丢失

  21. 21

    Unity Firebase SetCurrentScreen 必须从主线程调用

  22. 22

    Firebase Database Unity 区分新旧数据

  23. 23

    Firebase Crashlytics报告

  24. 24

    禁用Firebase崩溃报告

  25. 25

    禁用Firebase崩溃报告

  26. 26

    添加Firebase iOS SDK(4.3.0或更高版本)或Unity插件(6.15.0或更高版本),然后构建,运行并使应用崩溃

  27. 27

    选择退出 iOS 上的 Firebase 崩溃报告

  28. 28

    Unity上的GoogleVR出现错误,无法加载libaudioplugingvrunity

  29. 29

    从 Firebafirebase 崩溃报告旧迁移到 Firebase/Crashlytics

热门标签

归档