AndroidStudio Gradle failed to restore: Unable to find method 'org.gradle.api...

285 阅读2分钟

新拉了一个项目跑了下,然后发现Android studio提示如下错误:

A problem occurred configuring project ':app'.
> Failed to notify project evaluation listener.
   > org.gradle.api.file.ProjectLayout.fileProperty(Lorg/gradle/api/provider/Provider;)Lorg/gradle/api/file/RegularFileProperty;

本来以为是gradle插件和Gradle版本冲突的问题,然后发现整个项目中并没有gradle文件,然后就从其他项目拷贝了一份gradle文件复制到项目,然后根据Android Gradle 插件版本说明修改Gradle插件版本与所需Gradle版本。

然后项目成功运行。

再讲下Gradle 版本和 Gradle 插件版本之间的关系

Android Studio 使用 Gradle 作为其项目构建和依赖管理系统。Gradle 版本和 Gradle 插件版本之间的关系在 Android 项目中非常重要,因为它们需要保持兼容性。以下是它们之间关系的概要:

  1. Gradle 版本: Gradle 是一个独立的构建工具,用于构建各种类型的项目,包括 Android 项目。Android Studio 项目会指定一个特定的 Gradle 版本,该版本负责处理项目的构建。Gradle 版本由项目的 gradle-wrapper.properties 文件中的 distributionUrl 指定。
  2. Gradle 插件版本: Android Studio 通过 Gradle 插件与 Gradle 进行集成,该插件提供了一些特定于 Android 的构建功能。Gradle 插件版本由项目的 build.gradle 文件中的 com.android.tools.build:gradle 依赖项的版本号指定。

为了保持兼容性,Android Studio 的 Gradle 插件版本和项目使用的 Gradle 版本之间需要匹配。具体来说:

  • Gradle 插件版本和 Gradle 版本的关系: 每个 Gradle 插件版本都会与特定版本的 Gradle 进行兼容。这意味着你需要使用与你指定的 Gradle 版本兼容的 Gradle 插件版本。通常,Android Studio 会在创建新项目或导入现有项目时自动为你指定兼容的 Gradle 插件版本。
  • 插件版本的指定: 在项目的 build.gradle 文件中,你可以找到类似以下的行,用于指定 Gradle 插件版本:
dependencies {
    classpath "com.android.tools.build:gradle:插件版本号"
}

Gradle 版本的指定: 在项目的 gradle-wrapper.properties 文件中,你可以找到类似以下的行,用于指定 Gradle 版本:

distributionUrl=https\://services.gradle.org/distributions/gradle-版本号-all.zip

为了避免兼容性问题,当升级 Android Studio 或 Gradle 插件时,建议查阅官方文档以了解推荐的 Gradle 插件版本,并确保使用与 Android Studio 版本兼容的 Gradle 版本。

文章结束。