我正在编写一个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 版本)
我成功解决了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 包。
我将以下内容添加到我的 Strings.xml 资源文件中来解决该问题:
<resources>
<string name="com.crashlytics.android.build_id">none</string>
</resources>