我正在尝试新的Firebase / Crashlytics设置,似乎遇到了一个奇怪的问题。
我尝试根据Firebase说明发送测试崩溃报告。
E / Fabric:无法从https://settings.crashlytics.com/spi/v2/platforms/android/apps/package名称/设置
中检索设置
答案 0 :(得分:21)
好吧,我认为我解决了这个问题,但解决方案似乎不应该是它的工作方式(至少我不认为)。
所以基本上,从Fabric> Firebase屏幕 - 没有可见的链接,从Firebase>帐户链接> Fabric屏幕 - 也没有可见的链接。所以没有链接,但您的崩溃将在Firebase中显示。
答案 1 :(得分:7)
这比我弄清楚如何正确迁移需要花费很多时间。实际上你有两种方法可以做到:
执行干净迁移,无需保留Fabric Crashlytics的崩溃历史记录
Firebase Crashlytics developer guide中描述了这种方式。您必须在此处从应用清单文件中删除com.crashlytics.ApiKey
meta-data
。
通过这种方式,不得将Fabric与Firebase链接,否则在Firebase或Fabric控制台中都不会显示崩溃。
使用Firebase链接Fabric并保留崩溃历史记录
这种方式可能没有记录。 至关重要的是将com.crashlytics.ApiKey
meta-data
保留在您的清单中。然后,您需要将Fabric Crashlytics与Firebase相关联。您还可以启用将事件(以前称为Answers)转发到Firebase Analytics。这两个操作都显示在Fabric控制台中,在侧边菜单中查找Firebase。
所有新崩溃报告都显示在Fabric控制台和Firebase控制台中。此链接还会将所有Fabric崩溃报告历史记录复制到Firebase。
我认为此处不需要firebase-core
工件,但我添加了它。我还使用了Fabric事件,因此在firebase-core
Firebase Analytics中出现了额外的应用使用事件。
答案 2 :(得分:4)
转到项目设置并为您的Android应用添加SHA-1密钥。 之后,将google-service.json重新下载到您的来源。 这导致此错误消失
E/Fabric: Failed to retrieve settings from https://settings.crashlytics.com/spi/v2/platforms/android/apps/package name/settings
经过相当长的延迟后,您会在Firebase控制台中看到崩溃。
顺便说一句,这并不能帮助我使用在一个Google帐户下注册的应用,之后又转移到另一个帐户。为Firebase团队对此问题的回复进行了调整。
答案 3 :(得分:4)
我遇到了同样的问题,花了很多时间才弄清楚。
我通过转到FireBase Console > [my project] > Crashlytics
解决了我的问题。在下拉菜单中,您需要选择您的应用。之后,将显示一个包含三个步骤的向导。
单击任何适合您的选项,我选择了第一个,因为它是一个新应用。之后,出现第二步。
现在是重要的部分。 确保您单击链接以转到文档!将打开一个新的浏览器标签。如果您已经像我一样完成了项目设置,则可以将其关闭。之后,您将自动转到第三个选项。大多数情况下,我从未单击链接,因为我已经完成了安装。一旦我做完,我就再也没有注意到第三个选项可用,因为我在另一个选项卡上。结果,我再也看不到第三个选项。
此时,您应该打开您的应用程序,它将自动连接到Firebase,没有任何问题。
编辑:尝试添加其他一些构建变体后,我发现在检索设置时仍然出现一些错误。我花了很多时间弄清楚如何解决它。我能想到的最好的事情是:
它还帮助我启用了架构和崩溃解析程序的其他调试日志记录。
adb shell setprop log.tag.Fabric DEBUG
adb shell setprop log.tag.CrashlyticsCore DEBUG
答案 4 :(得分:2)
在我的情况下,meta-data:io.fabric.ApiKey的位置错误。
之前
<application
...>
<activity
...>
<meta-data
android:name="io.fabric.ApiKey"
android:value="xxxxxx" />
</activity>
</application>
之后
<application
...>
<activity
...>
</activity>
<meta-data
android:name="io.fabric.ApiKey"
android:value="xxxxxx" />
</application>
我希望这会有所帮助。
答案 5 :(得分:1)
我发现在转换为FirebaseCrashlytics之后,我必须在Firebase中注销并重新注册现有的应用程序。
请确保在运行应用程序之前先进行以下设置,以进行FirebaseCrashlytics的初始注册(控制台等待初始注册),否则它将无法注册: enter image description here
这些都不是显而易见的!
答案 6 :(得分:1)
您现在可以使用新的官方Firebase Crashlytics SDK在您的应用中设置Crashlytics,该SDK提供了改进的API,这些API与其他Firebase产品更加一致并且使用起来更加直观。本指南介绍了如何从Fabric Crashlytics SDK升级到新的SDK。它描述了新API附带的更改,更改的原因,以及在需要时如何更新代码。
前提条件:将您的应用迁移到AndroidX
不推荐自:
buildscript {
// ...
repositories {
// ...
// Remove Fabric's Maven repository.
maven { url 'https://maven.fabric.io/public' }
// Add Google's Maven repository (if it's not there already).
google()
}
dependencies {
// ..
// Add the Google Services Gradle plugin (if it's not there already).
classpath 'com.google.gms:google-services:4.3.3'
// Remove the Fabric Gradle plugin.
classpath 'io.fabric.tools:gradle:1.31.2'
}
}
收件人:
buildscript {
// ...
repositories {
// ...
// Add Google's Maven repository (if it's not there already).
google()
}
dependencies {
// ..
// Add the Google Services Gradle plugin (if it's not there already).
classpath 'com.google.gms:google-services:4.3.3'
// Add the Firebase Crashlytics Gradle plugin.
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.1.0'
}
}
最后,添加Firebase Crashlytics SDK。在您的应用程序级build.gradle中,将旧的Fabric Crashlytics SDK替换为新的Firebase Crashlytics SDK。为了获得Firebase Crashlytics的最佳体验,我们还建议将适用于Google Analytics(分析)的Firebase SDK添加到您的应用程序中(请确保添加版本17.2.3或更高版本,以获取无崩溃的实时用户和痕迹)。
不推荐自:
apply plugin: 'com.android.application'
// Apply the Google Services plugin (if it's not there already).
apply plugin: 'com.google.gms.google-services'
// Remove the Fabric plugin.
apply plugin: 'io.fabric'
dependencies {
// Remove the Fabric Crashlytics SDK.
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
// Recommended: Add the Google Analytics SDK.
implementation 'com.google.firebase:firebase-analytics:17.4.1'
}
收件人:
apply plugin: 'com.android.application'
// Apply the Google Services plugin (if it's not there already).
apply plugin: 'com.google.gms.google-services'
// Add the Firebase Crashlytics plugin.
apply plugin: 'com.google.firebase.crashlytics'
dependencies {
// Add the Firebase Crashlytics SDK.
implementation 'com.google.firebase:firebase-crashlytics:17.0.0'
// Recommended: Add the Google Analytics SDK.
implementation 'com.google.firebase:firebase-analytics:17.4.1'
}
从结构:Crashlytics.log("my message");
至Firebase Crashlytics SDK:
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();
// To log a message to a crash report, use the following syntax:
crashlytics.log("E/TAG: my message");
从结构:Crashlytics.getInstance().crash()
。
至Firebase Crashlytics SDK:
throw RuntimeException("Test Crash")
现在,FirebaseCrashlytics使用以下命令自动启动 新的Firebase Crashlytics SDK中定义的ContentProvider。去掉 对Fabric.with()的调用(如果存在)。如果您已经在使用Firebase Crashlytics,您的应用可能已经在使用自动启动功能,并且可能 不包含对Fabric.with()的调用。
GL
答案 7 :(得分:0)
我将这些答案发布给那些希望它能够正常运行而又无需从Firebase Crashlytics
断开其应用程序的人。
要实现这一目标,他们必须遵循以下条件,
在AndroidManifest
中以metadata
的形式添加Fabric API密钥。
<meta-data
android:name="io.fabric.ApiKey"
android:value="fabric_api_key"
/>
初始化Fabric
。
Fabric.with(this, new Crashlytics());
完成这两个步骤后,Crashlytics
在不断开应用程序链接的情况下再次开始工作。
答案 8 :(得分:0)
我在新的Firebase SDK升级到17.0.0+版本中遇到了这个问题。
问题是我们使用多种口味时引起的。如果您使用的是单独的风味-调试并将其也链接到Firebase,而不是将google-services.json文件添加到应用根目录,则必须将风味特定的json文件添加到该风味的相应文件夹中-应用-> src->(风味文件夹)。
这将确保生成的代码具有适用于该风味的正确客户端ID。
这是一个愚蠢的错误,但是人们有机会错过它。
答案 9 :(得分:0)
首先,您必须在控制台中的项目的“ Crashlytics”选项卡中启用“ Crashlytics”(在添加crashlytics的所有依赖项之前或之后),或按照本文档中介绍的步骤进行操作
链接:
https://firebase.google.com/docs/crashlytics/get-started?authuser=0&platform=android