如果我已经在使用 Crashlytics,是不是需要在 Android Studio 中为 Fabric Answers 添加 gradle 导入?

Posted

技术标签:

【中文标题】如果我已经在使用 Crashlytics,是不是需要在 Android Studio 中为 Fabric Answers 添加 gradle 导入?【英文标题】:Do I need to add gradle import in Android Studio for Fabric Answers if I'm already using Crashlytics?如果我已经在使用 Crashlytics,是否需要在 Android Studio 中为 Fabric Answers 添加 gradle 导入? 【发布时间】:2016-12-05 05:16:17 【问题描述】:

android Studio、Gradle、Fabric Crashlytics - 我们有一个非常常见的设置。我们在build.gradle 中有通常的compile 行:

compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') 
    transitive = true;

在我们的Application 子类中,实例化行:

Fabric.with(this, new Crashlytics());

一切都好。工作了很长时间。现在我们要使用 Fabric Answers。

这是令人困惑的部分 - 如果我将实例化行编辑为:

Fabric.with(this, new Crashlytics(), new Answers());

.. 它有效。我希望我会需要将以下内容添加到build.gradle,正如他们的安装文档所建议的那样:

compile('com.crashlytics.sdk.android:answers:1.3.10@aar') 
    transitive = true;

但是Answers 类似乎在有或没有这个导入的情况下都可以找到。

所以,我想我的问题:

    我需要两个 Gradle compile 条目吗?还是 com.crashlytics.sdk.android:crashlytics:2.6.5@aar 是一个已经包含 Answers 的超集? 当我同时需要 Crashlytics + Answers 时,Fabric.with(this, new Crashlytics(), new Answers()); 是实例化事物的正确方法吗?

我正在使用 both Gradle 导入,但即使我没有第二个,它似乎也可以编译。有点困惑为什么。

谢谢!

更新

正如接受的答案所述,仅拥有Fabric.with(this, new Crashlytics()); 就足够了。

深入研究Crashlytics 类,看起来它实际上实例化了一些东西:

this(new Answers(), new Beta(), new CrashlyticsCore());

.. 就这样吧!额外的 Gradle 导入 + Fabric 实例化参数是多余的。

【问题讨论】:

【参考方案1】:

您无需将 Answers 依赖项显式添加到 build.gradle 文件中,因为 Fabric 默认已包含该依赖项。所以你的第一行很好Fabric.with(this, new Crashlytics());

【讨论】:

这正是我们决定使用“答案”之前的样子。额外的 Gradle 导入呢? 不需要吗? 正确。我刚刚在我的项目中导入了第一个 Gradle,其中包括 Fabric 和 Answers。 啊酷。深入研究Crashlytics 类,现在它很有意义。接受你的回答。

以上是关于如果我已经在使用 Crashlytics,是不是需要在 Android Studio 中为 Fabric Answers 添加 gradle 导入?的主要内容,如果未能解决你的问题,请参考以下文章

我是不是需要在 iOS 中使用 Fabric Crashlytics 等服务的权限?

如何验证 dSYM 是不是已上传到 Crashlytics

Fabric Crashlytics 与 Angular Web 应用程序

Crashlytics 是不是遇到 assertionFailure 崩溃?

使用 Crashlytics 从 Google Play 上的应用记录错误

在 Xamarin iOS 中使用 Firebase Crashlytics