77

尝试在 Android Studio 上构建项目时出现以下错误:

错误:没有方法签名:com.crashlytics.tools.gradle.CrashlyticsPlugin.findObfuscationTransformTask() 适用于参数类型:(java.lang.String) 值:[DevDebug]

如何解决这个问题?

4

2 回答 2

110

编辑:在继续下面的解决方案之前,请首先更新到最新的稳定版本的fabric gradle工具并检查问题是否得到解决。在此编辑时,有人声称更新到 1.31.2 版已解决了该问题。

这似乎是与 .28.0 版本相关的问题"io.fabric.tools:gradle"

groupId:artifactId:n.+如果在依赖项(应用程序级别/项目级别)中使用版本控制结构,通常会出现此类问题。在这种情况下:

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

因为它会自动更新版本,因此,如果最新版本出现任何致命错误,项目很可能会因构建/运行时错误而面临崩溃。

Android Studio 总是建议:'避免+在版本号中使用;可能导致不可预测和不可重复的构建......'

发现一种可行的解决方案是降级到特定的先前版本,例如 1.27.1 或 1.28.0 之前的任何其他稳定的最新版本,例如:

dependencies {
    classpath 'io.fabric.tools:gradle:1.27.1'
}

请记住检查两个 gradle 文件(应用程序级别/项目级别)以查看上述依赖项的声明位置并进行相应更改。

于 2019-03-18T05:39:56.530 回答
58

嘿,这个错误是由于许多 android 开发人员使用而引发的

classpath 'io.fabric.tools:gradle:1.+'

像这样,编译器找不到完全匹配的结构版本和错误引发,而且M. Arabi Hasan Sakib是正确的

classpath 'io.fabric.tools:gradle:1.28.0'

也会引发此类错误,M. Arabi Hasan Sakib提到的解决方案也有效。我尝试了下面的代码,它对我有用,希望它也对你们有用,或者只是替换行

classpath 'io.fabric.tools:gradle:1.27.1'

(把这段代码放到app目录下的build.gradle中)

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

    dependencies {
        classpath 'io.fabric.tools:gradle:1.27.1'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
    maven { url "https://jitpack.io" }
    maven {
        url "http://dl.bintray.com/lukaville/maven"
    }
}
于 2019-03-18T05:42:42.260 回答