无法从 https://settings.crashlytics.com/spi/v2/platforms/android/apps/ 检索设置
Failed to retrieve settings from https://settings.crashlytics.com/spi/v2/platforms/android/apps/
我正在尝试新的 Firebase/Crashlytics 设置,似乎 运行 遇到了一个奇怪的问题。
- 我有一个 Android 代码库,其中包含多种产品口味,每种口味都是一个单独的应用程序。
- 所有这些应用程序都在 Fabric 中注册(从过去开始)
- 所有这些应用程序都已添加到 Firebase
- 两者之间的所有链接似乎都正常(从 Fabric 端以及从 Firebase 端,它说它全部链接起来)
- 我从清单文件中删除了 Fabric API 密钥,并将适当的 plugins/dependencies 等添加到两个 gradle 文件
我尝试按照 Firebase 说明发送测试崩溃报告。
- 我收到了其中一种产品口味的完美效果,所以我认为一切都很好。
然而,
- 其余产品口味不发送崩溃报告,我在日志中收到此错误:
E/Fabric: Failed to retrieve settings from https://settings.crashlytics.com/spi/v2/platforms/android/apps/package name/settings
如果有网络连接(例如在飞行模式下),即使一切设置正确,您也会收到此错误。
您还将获得:
E/Fabric﹕ Failed to retrieve settings from https://settings.crashlytics.com/spi/v2/platforms/android/apps/com.xyz/settings
W/Fabric﹕ Received null settings, skipping initialization!
为了防止 Crashlytics 在记录时进一步崩溃,我这样做了:
boolean fabricInitialized = Fabric.isInitialized();
if (fabricInitialized) {
Crashlytics.log(someString);
}
好的,我想我解决了问题,但解决方案似乎不是它应该的方式(至少我不这么认为)。
- 转到 Firebase 控制台 > 项目设置 > 帐户链接 > Fabric > Select 应用程序并取消link 它
- 在 Fabric > App > Firebase 中确认它是未linked
- 转到 Firebase > 项目 > Crashlytics(select 你想要的应用程序),你现在应该会再次看到一个对话框 link 你的应用程序
- 选择 link 作为新的 Crashlytics(不是现有的)并按照说明进行操作
- 之后一切正常
所以基本上,从 Fabric>Firebase 屏幕 - 没有 link 可见,从 Firebase>Account Linking>Fabric 屏幕 - 也没有 linking 可见。所以没有 linking,但您的崩溃将在 Firebase 中可见。
转到项目设置并为您的 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 团队对此问题的回应。
你可能忘了补充:
<meta-data
android:name="io.fabric.ApiKey"
android:value="h4132h4k324hjh4l4324h24hk21h4kj2h4" />
到您的清单文件。至少就我而言,这就是原因。
这比我弄清楚如何正确迁移花费了我很多时间。其实你有两种方法可以做到:
执行干净迁移而不保留 Fabric Crashlytics 的崩溃历史记录
这种方式在Firebase Crashlytics developer guide中有描述。您必须在此处从应用程序清单文件中删除 com.crashlytics.ApiKey
meta-data
。
通过这种方式,您不能link带有 Firebase 的 Fabric,否则崩溃将不会显示在 Firebase 或 Fabric 控制台中。
Link Fabric with Firebase 并保留崩溃历史记录
这种方式可能没有任何记载。 Crucial 将 com.crashlytics.ApiKey
meta-data
保留在您的清单中 。然后你需要 link Fabric Crashlytics with Firebase。您还可以启用将事件(以前称为 Answers)转发到 Firebase Analytics。这两个操作都显示在 Fabric 控制台中,在侧面菜单中查找 Firebase。
所有新的崩溃报告都显示在 Fabric 控制台和 Firebase 控制台中。此外,此 linking 安排将所有 Fabric 崩溃报告历史记录复制到 Firebase。
我认为firebase-core
神器在这里不是必需的,但我添加了它。我也在使用 Fabric Events,因此 firebase-core
Firebase Analytics 中出现了额外的应用程序使用事件。
在我的例子中,元数据的位置:io.fabric.ApiKey 是错误的。
- app/src/main/AndroidManifest.xml
之前
<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>
希望对您有所帮助。
检查互联网连接后,我通过在 Firebase 控制台中为我的应用程序激活 Crashlytics 解决了这个问题(然后,重新启动应用程序,一切都应该正常工作)
我遇到了同样的问题,我花了很多时间才弄明白。
我通过 FireBase Console > [my project] > Crashlytics
解决了我的问题。在下拉列表中,您需要 select 您的应用。之后将显示一个包含三个步骤的向导。
点击任何适合你的选项,我选择了第一个,因为它是一个新应用。之后出现第二步。
现在重要的部分来了。 确保单击 link 转到文档! 将打开一个新的浏览器选项卡。如果你已经像我一样完成了项目设置,你可以关闭它。之后您将自动转到第三个选项。大多数时候我从来没有点击 link 因为我已经完成了安装。一旦我这样做了,我就从来没有注意到第三个选项可用,因为我在另一个选项卡上。结果我从来没有看到第三个选项。
此时你应该打开你的应用程序,它会自动连接到 Firebase,没有任何问题。
编辑: 在我尝试添加一些其他构建变体后,我注意到在检索设置时我仍然遇到一些错误。我花了很多时间才弄清楚如何解决它。我能想到的最好的办法是:
- 切换到构建变体
- 在 gradle 选项卡上执行 assemble[YOUR_BUILD_VARIANT]。
- 构建 > 重建项目
- 从设备中删除旧应用程序(如果存在)。
- 安装应用程序并打开它。
有时这也不起作用,我再次尝试相同的步骤一两次,然后突然开始起作用了...
它还帮助我为 fabric 和 crashlytics 启用了额外的调试日志记录。
adb shell setprop log.tag.Fabric DEBUG
adb shell setprop log.tag.CrashlyticsCore DEBUG
我发布这个答案是为了那些希望它在不取消他们的应用程序与 Firebase Crashlytics
的链接的情况下运行的人。
要实现这一目标,他们必须执行以下操作,
将 fabric API 键添加回 AndroidManifest
作为 metadata
。
<meta-data
android:name="io.fabric.ApiKey"
android:value="fabric_api_key"
/>
初始化Fabric
。
Fabric.with(this, new Crashlytics());
完成这两个步骤后 Crashlytics
在不取消链接您的应用的情况下再次开始工作。
我发现在转换到 FirebaseCrashlytics 后,我必须取消注册并重新注册我现有的应用程序。
确保您的应用在 运行 初始 FirebaseCrashlytics 注册之前达到以下几点(控制台等待初始注册),否则它不会注册:
enter image description here
None这个是显而易见的!
升级到 Firebase Crashlytics SDK Android & iOS
You can now set up Crashlytics in your app by using the new official Firebase Crashlytics SDK, which offers improved APIs that are more consistent with other Firebase products and more intuitive to use. This guide describes how to upgrade to the new SDK from the Fabric Crashlytics SDK. It describes the changes that come with the new APIs, the reason for the changes, and how to update your code, if required.
Android
先决条件:将您的应用迁移到 AndroidX
1。添加 Firebase 配置文件
- 打开你的Project Settings.
- 单击下载 google-services.json 以获取您的 Firebase Android 配置文件。
- 将您的配置文件移动到您应用的模块(应用级)目录中。
2。切换你的依赖项
(项目级)/build.gradle
弃用自:
buildscript {
// ...
repositories {
// ...
// Remove Fabric's Maven repository.
<strike>maven { url 'https://maven.fabric.io/public' }
</strike>
// 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.
<strike>classpath 'io.fabric.tools:gradle:1.31.2'
</strike>
}
}
收件人:
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'
}
}
(应用级)/build.gradle
Finally, add the Firebase Crashlytics SDK. In your app-level build.gradle, replace the legacy Fabric Crashlytics SDK with the new Firebase Crashlytics SDK. For an optimal experience with Firebase Crashlytics, we recommend also adding the Firebase SDK for Google Analytics to your app (make sure to add Version 17.2.3 or later in order to get real time crash-free users and breadcrumbs).
弃用自:
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.
<strike>apply plugin: 'io.fabric'
</strike>
dependencies {
// Remove the Fabric Crashlytics SDK.
<strike>implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
</strike>
// 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现在是一个实例方法
来自面料: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")
Now, FirebaseCrashlytics starts up automatically using a
ContentProvider defined in the new Firebase Crashlytics SDK. Remove
calls to Fabric.with() if they exist. If you're already using Firebase
Crashlytics, your app may already be using automatic startup and may
not contain a call to Fabric.with().
GL
我在新的 Firebase SDK 升级到 17.0.0+ 版本时遇到了这个问题。
这个问题是在我们使用多种口味时引起的。如果您使用单独的风格 - 调试并将其链接到 firebase,而不是将 google-services.json 文件添加到应用程序根目录,我们必须添加特定风格的 json 文件到 flavor 的适当文件夹 - app -> src -> (flavor folder).
这将确保生成的代码具有适合该风格的正确客户端 ID。
这是一个愚蠢的错误,但人们有可能会错过它。
首先,您必须在控制台中项目的 Crashlytics 选项卡中启用 Crashlytics(在添加 crashlytics 的所有依赖项之前或之后)或按照本文档中的这些步骤进行操作
link:
https://firebase.google.com/docs/crashlytics/get-started?authuser=0&platform=android
我正在尝试新的 Firebase/Crashlytics 设置,似乎 运行 遇到了一个奇怪的问题。
- 我有一个 Android 代码库,其中包含多种产品口味,每种口味都是一个单独的应用程序。
- 所有这些应用程序都在 Fabric 中注册(从过去开始)
- 所有这些应用程序都已添加到 Firebase
- 两者之间的所有链接似乎都正常(从 Fabric 端以及从 Firebase 端,它说它全部链接起来)
- 我从清单文件中删除了 Fabric API 密钥,并将适当的 plugins/dependencies 等添加到两个 gradle 文件
我尝试按照 Firebase 说明发送测试崩溃报告。
- 我收到了其中一种产品口味的完美效果,所以我认为一切都很好。 然而,
- 其余产品口味不发送崩溃报告,我在日志中收到此错误:
E/Fabric: Failed to retrieve settings from https://settings.crashlytics.com/spi/v2/platforms/android/apps/package name/settings
如果有网络连接(例如在飞行模式下),即使一切设置正确,您也会收到此错误。
您还将获得:
E/Fabric﹕ Failed to retrieve settings from https://settings.crashlytics.com/spi/v2/platforms/android/apps/com.xyz/settings
W/Fabric﹕ Received null settings, skipping initialization!
为了防止 Crashlytics 在记录时进一步崩溃,我这样做了:
boolean fabricInitialized = Fabric.isInitialized();
if (fabricInitialized) {
Crashlytics.log(someString);
}
好的,我想我解决了问题,但解决方案似乎不是它应该的方式(至少我不这么认为)。
- 转到 Firebase 控制台 > 项目设置 > 帐户链接 > Fabric > Select 应用程序并取消link 它
- 在 Fabric > App > Firebase 中确认它是未linked
- 转到 Firebase > 项目 > Crashlytics(select 你想要的应用程序),你现在应该会再次看到一个对话框 link 你的应用程序
- 选择 link 作为新的 Crashlytics(不是现有的)并按照说明进行操作
- 之后一切正常
所以基本上,从 Fabric>Firebase 屏幕 - 没有 link 可见,从 Firebase>Account Linking>Fabric 屏幕 - 也没有 linking 可见。所以没有 linking,但您的崩溃将在 Firebase 中可见。
转到项目设置并为您的 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 团队对此问题的回应。
你可能忘了补充:
<meta-data
android:name="io.fabric.ApiKey"
android:value="h4132h4k324hjh4l4324h24hk21h4kj2h4" />
到您的清单文件。至少就我而言,这就是原因。
这比我弄清楚如何正确迁移花费了我很多时间。其实你有两种方法可以做到:
执行干净迁移而不保留 Fabric Crashlytics 的崩溃历史记录
这种方式在Firebase Crashlytics developer guide中有描述。您必须在此处从应用程序清单文件中删除
com.crashlytics.ApiKey
meta-data
。通过这种方式,您不能link带有 Firebase 的 Fabric,否则崩溃将不会显示在 Firebase 或 Fabric 控制台中。
Link Fabric with Firebase 并保留崩溃历史记录
这种方式可能没有任何记载。 Crucial 将
com.crashlytics.ApiKey
meta-data
保留在您的清单中 。然后你需要 link Fabric Crashlytics with Firebase。您还可以启用将事件(以前称为 Answers)转发到 Firebase Analytics。这两个操作都显示在 Fabric 控制台中,在侧面菜单中查找 Firebase。所有新的崩溃报告都显示在 Fabric 控制台和 Firebase 控制台中。此外,此 linking 安排将所有 Fabric 崩溃报告历史记录复制到 Firebase。
我认为
firebase-core
神器在这里不是必需的,但我添加了它。我也在使用 Fabric Events,因此firebase-core
Firebase Analytics 中出现了额外的应用程序使用事件。
在我的例子中,元数据的位置:io.fabric.ApiKey 是错误的。
- app/src/main/AndroidManifest.xml
之前
<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>
希望对您有所帮助。
检查互联网连接后,我通过在 Firebase 控制台中为我的应用程序激活 Crashlytics 解决了这个问题(然后,重新启动应用程序,一切都应该正常工作)
我遇到了同样的问题,我花了很多时间才弄明白。
我通过 FireBase Console > [my project] > Crashlytics
解决了我的问题。在下拉列表中,您需要 select 您的应用。之后将显示一个包含三个步骤的向导。
点击任何适合你的选项,我选择了第一个,因为它是一个新应用。之后出现第二步。
现在重要的部分来了。 确保单击 link 转到文档! 将打开一个新的浏览器选项卡。如果你已经像我一样完成了项目设置,你可以关闭它。之后您将自动转到第三个选项。大多数时候我从来没有点击 link 因为我已经完成了安装。一旦我这样做了,我就从来没有注意到第三个选项可用,因为我在另一个选项卡上。结果我从来没有看到第三个选项。
编辑: 在我尝试添加一些其他构建变体后,我注意到在检索设置时我仍然遇到一些错误。我花了很多时间才弄清楚如何解决它。我能想到的最好的办法是:
- 切换到构建变体
- 在 gradle 选项卡上执行 assemble[YOUR_BUILD_VARIANT]。
- 构建 > 重建项目
- 从设备中删除旧应用程序(如果存在)。
- 安装应用程序并打开它。 有时这也不起作用,我再次尝试相同的步骤一两次,然后突然开始起作用了...
它还帮助我为 fabric 和 crashlytics 启用了额外的调试日志记录。
adb shell setprop log.tag.Fabric DEBUG
adb shell setprop log.tag.CrashlyticsCore DEBUG
我发布这个答案是为了那些希望它在不取消他们的应用程序与 Firebase Crashlytics
的链接的情况下运行的人。
要实现这一目标,他们必须执行以下操作,
将 fabric API 键添加回 AndroidManifest
作为 metadata
。
<meta-data
android:name="io.fabric.ApiKey"
android:value="fabric_api_key"
/>
初始化Fabric
。
Fabric.with(this, new Crashlytics());
完成这两个步骤后 Crashlytics
在不取消链接您的应用的情况下再次开始工作。
我发现在转换到 FirebaseCrashlytics 后,我必须取消注册并重新注册我现有的应用程序。
确保您的应用在 运行 初始 FirebaseCrashlytics 注册之前达到以下几点(控制台等待初始注册),否则它不会注册: enter image description here
None这个是显而易见的!
升级到 Firebase Crashlytics SDK Android & iOS
You can now set up Crashlytics in your app by using the new official Firebase Crashlytics SDK, which offers improved APIs that are more consistent with other Firebase products and more intuitive to use. This guide describes how to upgrade to the new SDK from the Fabric Crashlytics SDK. It describes the changes that come with the new APIs, the reason for the changes, and how to update your code, if required.
Android
先决条件:将您的应用迁移到 AndroidX
1。添加 Firebase 配置文件
- 打开你的Project Settings.
- 单击下载 google-services.json 以获取您的 Firebase Android 配置文件。
- 将您的配置文件移动到您应用的模块(应用级)目录中。
2。切换你的依赖项
(项目级)/build.gradle
弃用自:
buildscript {
// ...
repositories {
// ...
// Remove Fabric's Maven repository.
<strike>maven { url 'https://maven.fabric.io/public' }
</strike>
// 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.
<strike>classpath 'io.fabric.tools:gradle:1.31.2'
</strike>
}
}
收件人:
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'
}
}
(应用级)/build.gradle
Finally, add the Firebase Crashlytics SDK. In your app-level build.gradle, replace the legacy Fabric Crashlytics SDK with the new Firebase Crashlytics SDK. For an optimal experience with Firebase Crashlytics, we recommend also adding the Firebase SDK for Google Analytics to your app (make sure to add Version 17.2.3 or later in order to get real time crash-free users and breadcrumbs).
弃用自:
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.
<strike>apply plugin: 'io.fabric'
</strike>
dependencies {
// Remove the Fabric Crashlytics SDK.
<strike>implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
</strike>
// 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现在是一个实例方法
来自面料: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")
Now, FirebaseCrashlytics starts up automatically using a ContentProvider defined in the new Firebase Crashlytics SDK. Remove calls to Fabric.with() if they exist. If you're already using Firebase Crashlytics, your app may already be using automatic startup and may not contain a call to Fabric.with().
GL
我在新的 Firebase SDK 升级到 17.0.0+ 版本时遇到了这个问题。
这个问题是在我们使用多种口味时引起的。如果您使用单独的风格 - 调试并将其链接到 firebase,而不是将 google-services.json 文件添加到应用程序根目录,我们必须添加特定风格的 json 文件到 flavor 的适当文件夹 - app -> src -> (flavor folder).
这将确保生成的代码具有适合该风格的正确客户端 ID。
这是一个愚蠢的错误,但人们有可能会错过它。
首先,您必须在控制台中项目的 Crashlytics 选项卡中启用 Crashlytics(在添加 crashlytics 的所有依赖项之前或之后)或按照本文档中的这些步骤进行操作
link:
https://firebase.google.com/docs/crashlytics/get-started?authuser=0&platform=android