在应用程序清单中添加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。
这是在build文件夹的res/values内自动生成的构建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>
5条答案
按热度按时间zzzyeukh1#
织物/防火涂料-
这通常是由于配置安装Fabric的说明时出现问题。请确保在调用
Fabric.with
语句的任何生成配置中均未设置ext.enableCrashlytics = false
。此外,请确保
apply plugin 'io.fabric'
在您的build. gradle中位于apply plugin: 'com.android.application
之后。最后,如果您碰巧运行的是旧版本的Fabric或Crashlytics,请尝试更新这些依赖项。https://fabric.io/kits/android/crashlytics/install.
bvjveswy2#
也许它有点旧,但我也遇到了这个问题。我不得不把这些插件按顺序放在
build.gradle
文件的底部:ibps3vxo3#
我知道我花了太多的时间来通知我找到了解决方案或没有,但我找到了解决方案几个星期后,问问题本身,和解决方案是在没有任何方式有关Firebase Crashlytics,也没有他的答案,我在这里得到了我的工作,我不知道为什么.我搜索了相当长一段时间后,我找到了解决方案,去找出为什么那个愚蠢的解决方案有效,尽管事实上它是不相关的。
这就是解决方案,据我所知,自从我很久以前找到解决方案以来,我想我把应用图标改成了一些自定义的应用图标,还改变了清单文件中的应用图标引用。这就像一个魅力!!
我真的很抱歉,如果我不能给予一个解决方案的解释,因为它是一个击中和试验方法,但一定要尝试它在你的结束,并告诉我,如果它的工作或没有。如果它的工作,你找到了一个令人信服的解释,为什么它的工作,请让我知道在评论部分。
ibps3vxo4#
通过两个步骤解决了我面临的相同问题
第1步-在firebase控制台中启用Crashlatics-选择项目-〉质量-〉Crashlatics -〉单击启用按钮
步骤2 -降级gradle版本表单
至
非常适合我但请确保在项目Gradle文件中使用以下配置
和应用Gradle文件
和依赖性
ecfdbz9o5#
虽然这是一个较老的问题,添加的答案,为我们工作,因为我们今天得到了这个错误,但没有多少有效的帮助,在网络上,甚至在这里。
以下是为删 debugging 误“Crashlytics内部版本ID缺失"而进行的更改。请注意,此错误仅在应用运行时出现,而不会在Gradle Sync、Build、Rebuild中出现。
1.将以下行添加到app\res\strings\strings.xml
1.确保**build.gradle(项目)**中存在以下依赖关系
1.确保build.gradle(模块)中存在以下依赖关系
注:如适用,请使用以上行(Java和/或Kotlin),如适用,请更新版本号。
同步Gradle、重建、运行应用程序。错误应消失。
感谢所有指出以上各点的投稿人。