从Crashlytics SDK迁移到Fabric后构建错误

Clo*_*sic 9 android crashlytics twitter-fabric

最近,我们已经将我们组织的Crashlytics帐户升级到Fabric,我正在尝试用我们现有应用程序中的新Fabric SDK替换旧的Crashlytics SDK.我已经按照迁移说明进行操作了,除了我在尝试编译时遇到构建错误之外,它基本上没有任何问题.导致错误的问题是引导程序调用:

Fabric.with(this, new Crashlytics());
Run Code Online (Sandbox Code Playgroud)

返回的错误是:

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)
Run Code Online (Sandbox Code Playgroud)

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

只是为了排除与方法调用的vararg性质特别相关的东西,我也尝试了多个套件(例如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;
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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

Clo*_*sic 26

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

我觉得有些愚蠢,但我会留下来帮助任何遇到同样问题的未来Google员工.:)

  • 谢谢你指点我正确的方向.对我来说,这是一个冗余的依赖项,迁移工具在添加aar后没有删除.因此,除了新的依赖项之外,如果你有:编译'com.crashlytics.android:crashlytics:+',请删除它. (2认同)