在应用程序清单中添加Fabric应用程序ID并在应用程序类文件中初始化Fabric之后,我现在面临以下堆栈跟踪的另一个异常。
java.lang.RuntimeException: Unable to create application fibamlscan.app.App: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: 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.
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6309)
at android.app.ActivityThread.access$1200(ActivityThread.java:241)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1807)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7156)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
Caused by: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: 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.
at com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:243)
at com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:211)
at io.fabric.sdk.android.InitializationTask.onPreExecute(InitializationTask.java:44)
at io.fabric.sdk.android.services.concurrency.AsyncTask.executeOnExecutor(AsyncTask.java:611)
at io.fabric.sdk.android.services.concurrency.PriorityAsyncTask.executeOnExecutor(PriorityAsyncTask.java:43)
at io.fabric.sdk.android.Kit.initialize(Kit.java:69)
at io.fabric.sdk.android.Fabric.initializeKits(Fabric.java:466)
at io.fabric.sdk.android.Fabric.init(Fabric.java:410)
at io.fabric.sdk.android.Fabric.setFabric(Fabric.java:368)
at io.fabric.sdk.android.Fabric.with(Fabric.java:339)
at fibamlscan.app.App.onCreate(App.java:28)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1158)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6304)
at android.app.ActivityThread.access$1200(ActivityThread.java:241)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1807)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7156)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
我已经按照stacktrace的建议尝试了所有可能的方法。但是解决这个错误没有任何作用。
我还检查了我的build文件夹中是否在每次构建后都生成了build id,但是我无法弄清楚Crashlytics为什么不能使用该build id。
这是在构建文件夹的res /值内自动生成的构建ID。
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<!--
This file is automatically generated by Crashlytics to uniquely
identify individual builds of your Android application.
Do NOT modify, delete, or commit to source control!
-->
<string tools:ignore="UnusedResources,TypographyDashes" name="com.crashlytics.android.build_id" translatable="false">1f3b35bb-2686-4f3f-91fe-87e8a05e2f71</string>
</resources>
答案 0 :(得分:0)
此处是Fabric / Firebaser-
这通常是由于配置安装Fabric的说明存在问题。确保未在调用ext.enableCrashlytics = false
语句的任何构建配置中设置Fabric.with
。
还要确保apply plugin 'io.fabric'
之后apply plugin: 'com.android.application
在您的build.gradle中。
最后,如果您恰巧运行的是Fabric或Crashlytics的旧版本,请尝试更新这些依赖项。在此处完整的说明和信息:https://fabric.io/kits/android/crashlytics/install。
答案 1 :(得分:0)
也许它有点老了,但我也遇到了这个问题。我不得不将这些插件按顺序放在build.gradle
文件的底部:
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
答案 2 :(得分:0)
我知道我花了太多时间通知我是否找到了解决方案,但是在问了问题本身几周后我找到了解决方案,而该解决方案与Firebase Crashlytics毫无关系,也没有他回答我到这里为我工作,我不知道为什么。找到解决方案后,我在互联网上搜寻了很长一段时间,以找出为何该愚蠢的解决方案尽管无关紧要的事实仍然有效。
据我所知,这是解决方案,因为我很久以前就找到了解决方案,所以我认为我将应用程序图标更改为某些自定义应用程序图标,并更改了清单中的应用程序图标引用文件。就像魅力一样!
真的很抱歉,如果我不能给出解决方案的解释,因为它是一种成功的尝试方法,但是请尝试到底,并告诉我它是否有效。并且,如果它起作用了,并且您找到了令人信服的原因解释,请在评论部分告诉我。
答案 3 :(得分:0)
我面临的同一问题可以通过两步解决
第1步-在firebase consol中启用Crashlatics-选择项目-> 质量->崩溃->单击启用按钮
第2步-降级gradle版本表格
classpath 'com.android.tools.build:gradle:4.1.0-alpha08'
收件人
classpath 'com.android.tools.build:gradle:3.5.3'
非常适合我,但请确保使用以下配置 在项目gradle文件中
classpath 'io.fabric.tools:gradle:1.31.2'
repositories {
maven {
url 'https://maven.fabric.io/public'
}
}
和应用gradle文件
apply plugin: 'io.fabric'
和依赖性
implementation "com.crashlytics.sdk.android:crashlytics:$FIREBASE_CRASHLATICS_VERSION"