如何解决CrashlyticsMissingDependencyException错误?

103

我已经使用最新的Crashlytics(Fabric集成)有一段时间了。但最近我遇到了以下崩溃错误,由于缺少依赖项,尽管我没有更改任何关于Crashlytics配置的内容。

有什么想法吗?

02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     |  |
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     |  |
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     |  |
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .   \ |  | /
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .    \    /
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     \  /
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .      \/
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
    install an Android build tool and ask a team member to invite you to this app's organization.
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .      /\
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     /  \
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .    /    \
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .   / |  | \
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     |  |
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     |  |
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     |  |
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .
02-08 22:18:00.935  18887-18887/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.android.staging, PID: 18887
    java.lang.RuntimeException: Unable to create application com.example.android.App: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: com.crashlytics.android.CrashlyticsMissingDependencyException:
    This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
    install an Android build tool and ask a team member to invite you to this app's organization.
            at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4734)
            at android.app.ActivityThread.access$1600(ActivityThread.java:171)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1357)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:157)
            at android.app.ActivityThread.main(ActivityThread.java:5506)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
            at dalvik.system.NativeStart.main(Native Method)

如下面的答案所述,我们正在修复中,但在我们继续解决问题的同时,使用1.14.4版本将可以正常工作。 - Mike Bonnell
我只是尝试了几次卸载和安装Android Studio的Fabrics。AS需要重新启动几次才能恢复正常。 - Robert
请使用此链接 https://docs.fabric.io/android/crashlytics/build-tools.html#disabling-crashlytics-for-debug-builds,了解如何禁用调试版本中的 Crashlytics。 - Shervin Gharib
17个回答

3
在我的情况下,我正在使用一个名为“CommonLib”的模块中的fabric,该模块已添加为所有其他模块(包括应用程序)的依赖项。因此,在buildscript {}块之后,我添加了apply plugin: 'io.fabric'。所以,我将两个插件放在一起:
apply plugin: 'com.android.library' 
apply plugin: 'io.fabric'

问题已解决!


1

请确保将apply plugin: 'io.fabric'添加到您的应用程序项目的build.gradle中。在我的情况下,我有一个通用的build.gradleapply plugin: 'io.fabric'。将其移动到应用程序项目中解决了问题。


0
如果这能帮到其他人,我在将Crashlytics升级到Fabric时遇到了类似的问题。在我的情况下,插件留下了两行Crashlytics代码,我需要手动删除才能使其正常工作。
在gradle文件中,在buildscript依赖项下,我必须手动删除:
classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.16.0'

另外,在依赖项下,我不得不手动删除:

compile 'com.crashlytics.android:crashlytics:1.1.13'

0

移除应用程序图标修复了Crashylitics,什么?

我按照入门教程完成了所有操作,使用了最新版本等。

刚刚浪费了一个小时来解决这个问题。原来有人认为读取应用程序图标的包名称而不是context.packageName来获取上下文中应用程序的资源是个好主意。这是在这个方法中完成的:

io.fabric.sdk.android.services.common.CommonUtils#getResourcePackageName

如果您使用的图标不在APK中,例如:android:icon="@android:drawable/sym_def_app_icon",那么这显然会出问题。也许当时这是个好主意,不知道他们试图解决什么奇怪的错误?!


0
也许我回复晚了。 但这可能是除了以上所有答案之外的另一个原因。
如果您忘记添加。
apply plugin:'io.fabric'

这可能看起来很奇怪,但这将导致相同的问题。

这是在我们使用 IDE 从 Fabric 窗口注册并添加代码时默认添加的,但不小心可能会被删除。


0

检查 build.gradle 文件中是否禁用了 Crashlytics

    debug {
        ext.enableCrashlytics = false
    }

改用

    debug {
        ext.enableCrashlytics = true
    }

-1
<meta-data
    android:name="firebase_crashlytics_collection_enabled"
    android:value="false" /> 

将其添加到 AndroidManifest.xml 文件中。

你的解决问题的方案是完全禁用Crashlytics吗? - JJJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接