2

Android Studio、Gradle、Fabric Crashlytics——我们有一个非常常见的设置。我们有通常的compile线路build.gradle

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无论有没有这个导入,似乎都可以找到这个类。

所以,我想我的问题:

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

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

谢谢!

更新

正如公认的答案所述,Fabric.with(this, new Crashlytics());独自一人就足够了。

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

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

..所以你去!额外的 Gradle 导入 + Fabric 实例化参数是多余的。

4

1 回答 1

2

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

于 2016-12-06T00:21:26.903 回答