更新到Android Studio 2.3 Canary 3后,Gradle构建失败

23
我最近把我的项目的Android Studio版本从2.3 Canary 2升级到了2.3 Canary 3。自那时以来,每次gradle构建都会失败,并显示以下错误消息:

Error:Unable to find method 'org.gradle.api.tasks.Sync.getInputs()Lorg/gradle/api/internal/TaskInputsInternal;'. 可能导致这种意外错误的原因包括:

  • Gradle的依赖缓存可能已损坏(这有时会在网络连接超时后发生)。 重新下载依赖项和同步项目(需要网络)
  • Gradle构建进程(守护程序)的状态可能已损坏。停止所有Gradle守护程序可能会解决此问题。 停止Gradle构建进程(需要重启)
  • 您的项目可能正在使用与项目中其他插件或项目请求的Gradle版本不兼容的第三方插件。
在Gradle进程出现问题的情况下,您还可以尝试关闭IDE,然后杀死所有Java进程。



我在谷歌上搜索,但没有找到完全解决此问题的解决方案。有人知道如何解决吗?

前往(文件-->无效缓存/重启)并点击等待重启,查看是否正常工作。 - Manohar
避免这种问题的最简单方法是不使用开发版和金丝雀版构建。只使用稳定版,因为只有稳定版才能保证正常工作。金丝雀版可能会有漏洞,这是可以接受的。 - Vladyslav Matviienko
请参考此链接:http://allinweidian.blogspot.in/2017/01/plugin-is-too-old-please-update-to-more.html - SwapnilD
9个回答

22
解决方案是在构建 gradle 面板中选择 "使用默认的 gradle wrapper(推荐)" 选项,如下图所示。现在您可以使用 gradle 3.2(在 gradle-wrapper.properties 中)和 android gradle:2.3.0-alpha3 或 beta1 进行构建,如撰写时所示。

输入图片描述

如果使用过程出现问题,请不要忘记清除缓存,方法是使用 文件 -> 清除缓存 / 重启

2
对于这个解决方案来说,重要的是在gradle-wrapper.properties中设置正确的版本。也可以使用本地gradle分发(至少3.2版本应该可以工作)。 - Valelik
1
在我的情况下,我通过终端强制升级gradle:$ ./gradlew tasks,它可以正常工作。 - Nguyen Minh Binh

9

我曾经遇到同样的问题,通过检查gradle home路径解决了这个问题。这个版本已经不再支持gradle-2.14.1。

下面的链接展示了如何将gradle路径指向gradle 3.2目录。

enter image description here


4
问题出在工具的最新版本2.3.0-alpha3上。 请在项目build.gradle中使用2.3.0-alpha2版本。
classpath 'com.android.tools.build:gradle:2.3.0-alpha2'

3

这种情况通常发生在安装新版本或更新Android Studio时。我尝试了几乎所有的解决方案,并找到一些事实想要分享。这对我很有效。

  1. 确保已经将更新的JDK设置到计算机并设置路径位置。

控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量 -> 编辑路径并粘贴您的JDK bin文件夹位置

例如:C:\ Program Files \ Java \ jdk1.8.0_131 \ bin

  1. 设置项目级别设置“使用默认Gradle包装器(推荐)”从,

    Android Studio -> 文件 -> 设置 -> 构建、执行、部署 -> Gradle

  2. 设置Android Studio JDK位置:

Android Studio -> 文件 -> 项目结构 -> SDK位置 -> JDK位置

  1. 如果这三个步骤都完成了,则需要设置Gradle版本3.4.1或查看最新版本gradle.org/releases

Android Studio -> 文件 -> 项目结构 -> 项目 -> Gradle版本

  1. 完成设置后,清除缓存,Android Studio将自动恢复。

Android Studio -> 文件 -> 无效缓存/重新启动...

enter image description here


2

如果你正在使用gradle wrapper,请确保你的gradle/wrapper/gradle-wrapper.properties中的distributionUrl正确并且是最新的。截至本文撰写时,我使用的是:

 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
 distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

1
尝试将Gradle版本升级到3.2.1。

如何?@KenWang - CJR
请参考链接 @Carlton http://allinweidian.blogspot.in/2017/01/plugin-is-too-old-please-update-to-more.html - SwapnilD

1
你可能会在之前的项目中遇到这个问题,我们会发现当你创建一个新应用程序时,Gradle构建将成功完成。所以只需要将新项目中的Gradle设置复制粘贴到之前的项目中即可。
步骤:
1)在build.gradle(project)中替换Dependencies为以下代码: 2)在Gradle-wrapper.properties中替换distributionUrl为以下代码:

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

3) 不要忘记在项目级别设置中使用Gradle默认包装器。

查看此图片以获取更多信息


1

更新到Android Studio 2.3后,如果加载旧版本的Android Studio现有项目,则在刷新项目时可能需要很长时间甚至永远无法完成。

  1. 首先访问Gradle Distributions并下载任何大于3.2版本的Gradle。
  2. 解压缩并将其保存在计算机上合适的位置。
  3. 转到Android Studio并选择以下路径:
  4. 文件->设置->构建、执行、部署->Gradle
  5. 在右侧选择或选择使用本地Gradle分发
  6. 然后浏览到您保存已下载提取的Gradle的位置
  7. 单击应用,然后单击确定。
  8. 这就是了,您的项目现在应该正常工作。

-1

更改

构建:gradle:

依赖项 {      classpath 'com.android.tools.build:gradle +'

依赖项 {      classpath 'com.android.tools.build:gradle:2.2.3'


这与OP提到的问题无关。 - MatPag

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