Gradle的依赖缓存可能已损坏

我已经尝试过Invalidate / Cache并重新启动

还尝试删除.gradle和gradle文件..但是这个问题仍然出现了。

错误:无法find方法’com.android.build.gradle.BaseExtension.getTestVariants()Lorg / gradle / api / internal / DefaultDomainObjectSet;’。 此意外错误的可能原因包括:

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

在损坏的Gradle进程的情况下,您还可以尝试关闭IDE,然后终止所有Java进程。

有什么想法吗?

感谢您的帮助!

您需要在gradle scripts更改gradle-wrapper.properties中的gradle scripts 。 这个错误可以解决。

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

我认为你的kotlin-gradle-plugin版本很低; 您可以尝试在project / build.gradle中更新kotlin-gradle-plugin

  dependencies { classpath 'com.android.tools.build:gradle:3.0.0-alpha1' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-4'} 

尝试将gradle重置为可以正确加载的旧版本。 在gradle脚本中更改gradle-wrapper.properties中的distributionUrl。 这个错误可以解决。

删除/.gradle/文件夹和/ gradle /文件夹并重新导入。 或者在IntelliJ的情况下,您可以单击Gradle Tool窗口并单击Refresh。

我有同样的错误。 我通过更改gradle-wrapper.properties中的gradle分发版本来解决此错误(您可以在https://services.gradle.org/distributions/中find分发列表)

gradle-wrapper.properties

对于示例,我的旧版本gradle分发:

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

我的新版gradle发行版:

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

通过更改此版本,android studio将下载新的gradle disrtribution并与项目同步。 这是gradle-wrapper.properties的位置

我有类似的问题,有以下症状:

  1. 我试图从项目中删除.gradle文件夹 – 它不起作用。
  2. 我尝试使用旧的gradle版本,但是工作室强迫我使用gradle-3.3 ,所以它让我困惑了很长时间。
  3. 我注意到提示解压缩exception:

    java.util.zip.ZipException: error in opening zip file

    我试图手动解压缩文件,它说它无法解压缩,因此问题肯定发生在下载过程中。

我的解决方案:我从我的同事那里成功复制了gradle-3.3-all.zip文件,并在此路径中取代了我的文件:

 .gradle/wrapper/dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw9/gradle-3.3-all.zip