如何处理:“Crashlytics 构建 ID 丢失”

问题描述 投票:0回答:1

我正在编写一个xamarin应用程序,我需要使用Crashlytics,但在安装时遵循本指南我发现,当我尝试运行Android应用程序时,我得到:

Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.IllegalStateException: The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.
[FirebaseApp] Device unlocked: initializing all Firebase APIs for app [DEFAULT]
[FirebaseCrashlytics] Initializing Firebase Crashlytics 18.3.2 for com.lorem.ipsum
[FirebaseCrashlytics] .
[FirebaseCrashlytics] .     |  | 
[FirebaseCrashlytics] .     |  |
[FirebaseCrashlytics] .     |  |
[FirebaseCrashlytics] .   \ |  | /
[FirebaseCrashlytics] .    \    /
[FirebaseCrashlytics] .     \  /
[FirebaseCrashlytics] .      \/
[FirebaseCrashlytics] .
[FirebaseCrashlytics] The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.
[FirebaseCrashlytics] .
[FirebaseCrashlytics] .      /\
[FirebaseCrashlytics] .     /  \
[FirebaseCrashlytics] .    /    \
[FirebaseCrashlytics] .   / |  | \
[FirebaseCrashlytics] .     |  |
[FirebaseCrashlytics] .     |  |
[FirebaseCrashlytics] .     |  |
[FirebaseCrashlytics] .
[AndroidRuntime] Shutting down VM
**Java.Lang.RuntimeException:** 'Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.IllegalStateException: The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.'

每次,无论我做什么。

如果我尝试运行此代码,也在 iOS 方面:

Crashlytics.SharedInstance.Init();
                Crashlytics.SharedInstance.SetCrashlyticsCollectionEnabled(true);
                Crashlytics.SharedInstance.SendUnsentReports();

应用程序崩溃。

在android上我已经尝试了整个字符串的事情。我已经在 app.Android/Resources/values/ 中制作了 String.xml 并写入其中:

<?xml version="1.0" encoding="utf-8" ?>
<resources>
    <string name="com.crashlytics.android.build_id">2.0</string>
    <string name="com.google.firebase.crashlytics.mapping_file_id">none</string>
    <string name="google_app_id">The "current_key" from the google-servicies.json</string>
</resources>

google-servicies.json 是正确的,位于根文件夹中,我已确保安装了所有 nuGet 软件包,但无济于事。我发现没有任何东西对我有用。

在 iOS 方面,我没有做太多的工作,因为我全神贯注于 Android 部分,但现在一般无法工作。

编辑:

我必须说的一点是,这个项目应该替代 android studio 中已经安装了 crashlytics 的项目,并且两者共享相同的包名称。 (这不适用于全新的 iOS 版本)

编辑2:

我成功解决了Android前端需要添加的地方:

<GoogleServicesJson Include="google-services.json" />

到我的.Android.csproj

现在在 iOS 部分,我已经成功获取了之前由于某种原因未显示的日志,他们说:

[0:] An error occurred: 'Object reference not set to an instance of an object.'. Callstack: '  at diarioDeTeruelIOS.iOS.AppDelegate.FinishedLaunching (UIKit.UIApplication app, Foundation.NSDictionary options) [0x00021] in C:\App.iOS\AppDelegate.cs:31

哪里

Crashlytics.SharedInstance.Init();
Crashlytics.SharedInstance.SetCrashlyticsCollectionEnabled(true);
Crashlytics.SharedInstance.SendUnsentReports();

是。这次我检查了 csproj 和 .plist,我有 crashlytics 和 firabase.core NuGet 包。

android firebase xamarin xamarin.forms crashlytics
1个回答
0
投票

我将以下内容添加到我的 Strings.xml 资源文件中来解决该问题:

<resources>
    <string name="com.crashlytics.android.build_id">none</string>
</resources>
© www.soinside.com 2019 - 2024. All rights reserved.