9

最近,我们已将组织的 Crashlytics 帐户升级到 Fabric,我正在尝试用我们现有应用程序中的新 Fabric SDK 替换旧的 Crashlytics SDK。我已经按照迁移说明进行了操作,而且基本上没有痛苦,只是我现在在尝试编译时收到了构建错误。导致错误的行是引导调用:

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

返回的错误是:

Error:(55, 11) error: no suitable method found for with(MyActivity,Crashlytics)
method Fabric.with(Fabric) is not applicable
(actual and formal argument lists differ in length)
method Fabric.with(Context,Kit...) is not applicable
(argument type Crashlytics does not conform to vararg element type Kit)

显然,由于某种原因,new Crashlytics()它没有被认为是该方法的有效论据。with(Context,Kit...)

只是为了排除与方法调用的可变参数性质特别相关的问题,我还尝试了不止一个工具包(例如Fabric.with(this, new Crashlytics(), new MoPub())),但仍然返回完全相同的错误。

最后,我尝试将调用移至onCreate()我的 Application 子类的方法,但这也无济于事。


build.gradle 中的相关部分:

buildscript {
  repositories {
    maven { url 'https://maven.fabric.io/public' }
  }

  dependencies {
    classpath 'io.fabric.tools:gradle:1.+'
  }
}

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
  maven { url 'https://maven.fabric.io/public' }
}

dependencies {
  compile fileTree(dir: 'libs', include: '*.jar')
  ...
  compile('com.crashlytics.sdk.android:crashlytics:2.2.1@aar') {
    transitive = true;
  }
}

我还验证了 Fabric 插件已正确安装并正常工作,并且不再安装旧的 Crashlytics 插件:

插件列表显示 Fabric 插件存在,而 Crashlytics 插件不存在 Fabric插件运行

4

2 回答 2

26

事实证明,旧的 Crashlytics JAR 仍然libs以某种方式隐藏在我的文件夹中,删除它后,此错误不再存在。

我觉得有点傻,但我会留下来帮助任何遇到同样问题的未来谷歌员工。:)

于 2015-02-24T17:44:26.887 回答
1

我确切地找到了@TreKing 在他的评论中提到的内容。升级/迁移未能从我的app/build.gradle文件中删除以前的依赖项。查找类似的旧条目compile 'com.crashlytics.android:crashlytics:1.1.13'并将其删除。

于 2016-03-01T17:35:56.317 回答