Gradle同步失败:在升级到Gradle 4.0.0后找不到方法。

9

我将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

同步项目后,我收到以下信息:

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

我知道,如果我降级版本,项目将能够成功同步。但是是否存在不兼容性?如果是这样,为什么会有一些更新?


尝试删除项目根文件夹中的.gradle,然后从文件菜单中使用同步项目 - silentsudo
我也曾遇到过同样的问题。我的应用程序使用的是GreenDao 3.2.2版本,但是当我按照这个答案更新GreenDao到3.3.0版本后,问题得以解决。参见 - Ahmed Sa'eed
3个回答

17

这可能是由于任何第三方Gradle插件不支持新的Tasks API导致的。在我的情况下,原因是greendao Gradle插件。

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

classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'
否则,您将不得不找到导致问题的插件。

11
在使用Gradle插件4.0.0和Gradle版本gradle-6.1.1-all.zip时,在Android Studio 4.0中出现以下错误的解决方案: 错误: Unable to find method 'org.gradle.api.tasks.TaskInputs.property(Ljava/lang/String;Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;'。 根本原因: 问题起源于旧版GreenDao库(早于3.3.0),不支持Gradle 6.0.0和早期的Gradle插件3.3.x。 解决方案: 从最新版本的构建(GreenDao v3.3.0)的发布说明中收集到以下支持已添加到最新版本: ---支持Android Gradle插件3.3+API。#942 ---支持Gradle 6.0。#1002 在根build.gradle(项目)中将库更新为3.3.0后。
classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'

并在 build.gradle 模块中:

implementation "org.greenrobot:greendao:3.3.0"

这个问题已经得到解决。

特别注意: 任何其他不支持最新gradle插件的库都可能引发类似的错误。为了确定是哪个库导致了问题,您可以运行以下命令:

./gradlew tasks --stacktrace

1
感谢您提供有关 ./gradlew tasks --stacktrace 的提示。 - MidasLefko

0

我是如何解决一个问题的,需要两个步骤:

  1. 删除你的Gradle并重新安装新版本
  2. 导航到文件并点击无效和清除缓存以重新启动Android Studio

选项1或2都可能有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接