firebase 未满足依赖项异常:缺少Crashlytics内部版本ID

k4emjkb1  于 2023-01-21  发布在  其他
关注(0)|答案(5)|浏览(254)

在应用程序清单中添加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>
zzzyeukh

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.

bvjveswy

bvjveswy2#

也许它有点旧,但我也遇到了这个问题。我不得不把这些插件按顺序放在build.gradle文件的底部:

apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
ibps3vxo

ibps3vxo3#

我知道我花了太多的时间来通知我找到了解决方案或没有,但我找到了解决方案几个星期后,问问题本身,和解决方案是在没有任何方式有关Firebase Crashlytics,也没有他的答案,我在这里得到了我的工作,我不知道为什么.我搜索了相当长一段时间后,我找到了解决方案,去找出为什么那个愚蠢的解决方案有效,尽管事实上它是不相关的。
这就是解决方案,据我所知,自从我很久以前找到解决方案以来,我想我把应用图标改成了一些自定义的应用图标,还改变了清单文件中的应用图标引用。这就像一个魅力!!
我真的很抱歉,如果我不能给予一个解决方案的解释,因为它是一个击中和试验方法,但一定要尝试它在你的结束,并告诉我,如果它的工作或没有。如果它的工作,你找到了一个令人信服的解释,为什么它的工作,请让我知道在评论部分。

ibps3vxo

ibps3vxo4#

通过两个步骤解决了我面临的相同问题
第1步-在firebase控制台中启用Crashlatics-选择项目-〉质量-〉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"
ecfdbz9o

ecfdbz9o5#

虽然这是一个较老的问题,添加的答案,为我们工作,因为我们今天得到了这个错误,但没有多少有效的帮助,在网络上,甚至在这里。
以下是为删 debugging 误“Crashlytics内部版本ID缺失"而进行的更改。请注意,此错误仅在应用运行时出现,而不会在Gradle Sync、Build、Rebuild中出现。
1.将以下行添加到app\res\strings\strings.xml

<string name="com.google.firebase.crashlytics.mapping_file_id">none</string>

1.确保**build.gradle(项目)**中存在以下依赖关系

classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'

1.确保build.gradle(模块)中存在以下依赖关系

// Crashlytics
 implementation 'com.google.firebase:firebase-crashlytics:18.3.3'
 implementation 'com.google.firebase:firebase-crashlytics-ktx:18.3.2'

注:如适用,请使用以上行(Java和/或Kotlin),如适用,请更新版本号。
同步Gradle、重建、运行应用程序。错误应消失。
感谢所有指出以上各点的投稿人。

相关问题