Gradle 同步失败:更新到 Gradle 4.0.0 后无法找到方法

Gradle sync failed: Unable to find method after update to Gradle 4.0.0

我将 gradle 更新为 4.0.0

classpath 'com.android.tools.build:gradle:4.0.0'

并将 distributionUrl 设为:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

同步我得到的项目后:

Unable to find method 'org.gradle.api.tasks.TaskInputs.property(Ljava/lang/String;Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;'.

我知道,如果我降级版本,项目将正常同步。但是有什么地方不兼容吗?如果是真的,为什么会有一些更新?

我是如何通过两个步骤解决问题的:

  1. 删除您的 Gradle 并重新安装新版本
  2. 导航到“文件”并单击“无效并清除缓存”以重新启动 android studio

选项 1 或 2 都可行。

这可能是因为任何第 3 方 Gradle 插件不支持新任务 API。就我而言,这是因为 greendao Gradle 插件。

如果您正在使用 greendao,请将其更新至最新版本 3.3.0:

classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'

否则您将不得不找到导致问题的插件。

使用Gradle Plugin 4.0.0Android Studio 4.0出现以下错误的解决方法Gradle版本gradle-6.1.1-all.zip:

错误: 无法找到方法 'org.gradle.api.tasks.TaskInputs.property(Ljava/lang/String;Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;'。

根本原因: 问题出在不支持 Gradle 6.0.0 和 Gradle 3.3.x[=13 之前的插件的旧版 GreenDao Library(早于 3.3.0) =]

解法: 从最新版本 (GreenDao v3.3.0) 的发行说明中收集到以下支持已添加到最新版本中: --- 支持 Android Gradle 插件 3.3+ API。 #942 --- 支持 Gradle 6.0。 #1002

将根目录中的库更新到 3.3.0 后 build.gradle(项目)

classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'

并在 build.gradle 模块中:

implementation "org.greenrobot:greendao:3.3.0"

问题已解决。

特别说明: 任何其他不支持最新 gradle 插件的库都可能抛出类似的错误。要确定是哪个库导致了问题,您可以 运行:

./gradlew tasks --stacktrace