【问题标题】:Android Studio - Failed to apply plugin [id 'com.android.application']Android Studio - 无法应用插件 [id 'com.android.application']
【发布时间】:2016-09-02 09:05:18
【问题描述】:

我正在开发一个应用程序。在我的应用程序中,代码没有错误,但是当我尝试运行我的项目时,它会出现以下错误。

错误:(1, 1) 评估项目 ':app' 时出现问题。

无法应用插件 [id 'com.android.application']

无法创建“AppPlugin”类型的插件。

我也试试这个Gradle is issuing an error "Could not create plugin of type 'AppPlugin'"

这也是Gradle errors in Android Studio

以下是我的 build.gradle 文件

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {

    compileSdkVersion 23
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.praval.healthfreak"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'

    compile 'com.android.support:appcompat-v7:23.2.1'
    compile 'com.google.android.gms:play-services:8.3.0'
    compile 'de.hdodenhof:circleimageview:1.3.0'
    compile 'com.android.support:design:23.2.1'
    compile files('libs/YouTubeAndroidPlayerApi.jar')

}

【问题讨论】:

  • 你的 gradle (wrapper) 版本是什么?你的 android gradle 插件版本是多少?
  • 如何找到 gradle 版本? @DavidMedenjak
  • @PravalSharma 检查项目文件夹的build.gradle 文件。
  • @Kunu 我已经发布了build.gradle文件
  • @PravalSharma 这是app 模块的 gradle 文件。整个项目在父文件夹中还有其他 gradle 文件。

标签: android android-gradle-plugin


【解决方案1】:

2020 年 6 月 24 日更新

您需要更新到最新的gradle 版本才能解决此问题。

请确保您使用的是最新的Android Studio

然后通过更新这个依赖来更新你的项目级别build.gradle

buildscript {
    repositories {
        google()
        jcenter() 
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.0'
    }
}

它可能会显示一个弹出窗口,询问您是否允许更新gradle,请更新它会自动下载最新的发行版,问题将得到解决。

否则你可以

here 获取最新的 Gradle 5.6.4 并手动添加

如果您不想手动下载:

打开YourProject > gradle > wrapper > gradle-wrapper.properties并替换

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

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

重建项目或再次运行 gradle sync。

【讨论】:

  • 对我不起作用。我也有低级异常,例如: IllegalStateException:正在处理缓存值。一开始他告诉我:“与项目'android-app'的Gradle同步失败:MALFORMED”
  • 我们把下载的 gradle 文件夹放在哪里,我们给它起什么名字?
  • 对我也不起作用,我不得不回滚到 gradle plugin 2.3.3
  • 而不是apply plugin: 'com.android.application' 而是添加类路径依赖?
【解决方案2】:

我在 Android Studio 版本 3.5.3 中遇到了同样的问题。我就是这样解决的。

我将项目级别 build.gradle 文件中的依赖项 com.android.tools.build:gradle 从较低版本更新为 3.5.3 如下。

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

然后我继续编辑 gradle-wrapper.properties 文件中 distributionUrl 的值,如下所示。该文件位于项目文件夹根目录的 /gradle/wrapper/ 目录中。

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

【讨论】:

【解决方案3】:

我找到了最简单的答案。

只需转到 gradle.properties 文件并将 enableUnitTestBinaryResources 从 true 更改为 false

android.enableUnitTestBinaryResources=false

截图如下

【讨论】:

  • 我可以保证这一点。我的工作正常
【解决方案4】:

删除 gradle 缓存文件。 它可以像 C:\Users\username\.gradle\caches 对于 Windows 用户。 对于基于 UNIX 的操作系统,它将是 ~/.gradle/caches.

【讨论】:

  • 感谢好友浪费了我的 6GB gradle 文件
【解决方案5】:

2021 年 2 月 25 日:

对我来说,经过 8 多个小时的试验和错误后,项目级 build.gradle 文件中 repositories 源的重新排序解决了我的问题。所以,而不是:

buildscript {
  ...
  repositories {
        google()
        mavenCentral()
        maven { url "https://plugins.gradle.org/m2/" }
  }
  ...
}

我把google()移到了底部:

buildscript {
  ...
  repositories {
        mavenCentral()
        maven { url "https://plugins.gradle.org/m2/" }
        google()
  }
  ...
}

当然,请务必更新 gradle android 插件和匹配的 gradle-wrapper 分发版本。

【讨论】:

    【解决方案6】:

    我通过在 project\gradle\wrapper\gradle-wrapper.properties 中升级到 gradle-5.6.4-all.zip 来修复它

    #Wed Mar 11 15:20:29 WAT 2020
    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
    
    

    【讨论】:

      【解决方案7】:

      只需转到gradle.properties 文件并将enableUnitTestBinaryResourcestrue 更改为false

      android.enableUnitTestBinaryResources=false
      

      【讨论】:

        【解决方案8】:

        在 Android Studio 上打开项目,让它为你解决问题

        它立即显示在左下角:

        然后单击该链接,它会为您修复正确的文件。

        这最终修复了 Gradle 版本,如 https://stackoverflow.com/a/37091489/895245 所述,但它也修复了更多错误,因此这是最简单的事情。

        https://github.com/googlesamples/android-vulkan-tutorials/tree/7ba478ac2e0d9006c9e2e261446003a4449b8aa3/tutorial05_triangle、Android Studio 2.3、Ubuntu 14.04 上测试。

        【讨论】:

          【解决方案9】:

          通过设置 gradle 版本 3.2.1 解决了它

          buildscript {
          dependencies {
              classpath 'com.android.tools.build:gradle:3.2.1'
          }
          

          在项目级 Gradle 中

          【讨论】:

          • 现在是“3.5.2”版本
          【解决方案10】:

          您只需要更改您的 project.gradle 文件。并同步您的 Gradle。

          dependencies {
           classpath 'com.android.tools.build:gradle:2.2.2'
          }
          

          【讨论】:

          • “同步你的​​ gradle”是什么意思?最新版本?
          • 简单地说,就是“将你所有的‘gradle依赖’同步到你的项目中。
          【解决方案11】:

          当我遇到这个问题时,因为我的目录有非 ASCII 字符。换个试试

          【讨论】:

            【解决方案12】:

            首先将 gradle 更新到最新版本,如果问题仍然存在(在我的情况下确实存在),然后执行以下操作 - 转到 gradle.properties 文件并 comment 该行 android.enableUnitTestBinaryResources=true

            现在点击同步。

            它应该可以解决问题。

            【讨论】:

              【解决方案13】:

              在 Mac 上只需转到:

              Android Studio -> Preference -> Gradle -> Gradle JDK -> 下载 JDK -> 好

              【讨论】:

                【解决方案14】:

                与已接受的帖子一样,通过将 gradle 更新到 4.4.1 解决了问题。

                1. here 获取最新的 Gradle 4.4.1
                2. 解压并放入“C:\Program Files\Android\Android Studio\gradle”
                3. 然后从 android studio 转到 “文件 -> 设置 -> 构建、执行、部署 -> Gradle”,来自项目级设置:选择使用本地 gradle 分发并提供上述内容
                  地址(“C:\Program Files\ ...”中名为“gradle-4.4.1”的文件夹)
                4. 然后制作项目。

                我的问题就这样解决了。

                【讨论】:

                  【解决方案15】:

                  在我的情况下,如果您的构建工具版本在根文件夹中的 build.gradle 文件中,例如:

                  classpath 'com.android.tools.build:gradle:3.x.x'

                  您项目中安装的Gradle不支持,您可以查看构建工具/插件支持的版本here,并确保您项目中安装的版本受该版本的Gradle支持。

                  您不需要升级 Gradle,您只需检查它是否支持您项目中安装的插件。

                  【讨论】:

                    【解决方案16】:

                    我的问题是我的项目文件夹路径中有捷克语字符(č、ú、ů、á、ó)。

                    【讨论】:

                      【解决方案17】:

                      我遇到了同样的问题,这就是我所做的,我能够解决我的问题:

                      • 我正在使用带有 Android Studio 3.6.1 的 ShimmerAndroidAPI (this library)。
                      • 在我使用 android studio 中出现的弹出升级建议将 Gradle 和 Android Studio 升级到新版本之前,这运行良好。
                      • 我按照this 回答中提到的以下步骤操作,我能够使项目正常工作。我遵循的步骤如下。
                      • Gradle 文件已从类路径 'com.android.tools.build:gradle:3.6.1' 更新为

                        类路径'com.android.tools.build:gradle:3.1.3'

                      • 然后 gradle-wrapper.properties 文件中的分发 URL 从 distributionUrl=https://services.gradle.org/distributions/gradle-5.6.4-all.zip 更新为

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

                      • 然后同步 Gradle。

                      【讨论】:

                      • 想象一下在无法访问链接的情况下阅读您的答案。即使您有链接名称(a/56...),您认为它仍然意味着什么吗?您不能至少添加 stackoverflow 问题的名称,以及可能对您有帮助的最重要的信息吗?
                      • 正如@B.Go 提到的,仅链接的答案不被认为是高质量的。阅读How to Answer 以获取有关改进答案的提示,并阅读edit
                      • 我知道了,非常感谢您的建议。这真的很有帮助。我用更多信息编辑了我的答案。
                      【解决方案18】:

                      每当您更新 Gradle 文件时,请不要忘记检查兼容的 Gradle 包装器distibutionUrl,在您的情况下,它发生的原因是相同的。

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

                      【讨论】:

                        【解决方案19】:

                        在我的项目中,有一个 .gradle 文件夹,它缓存了我之前使用的 gradle 版本 (5.4.1),并且 gradle 一直使用 that 而不是我新下载的 (5.6.4) )。

                        简单地说:

                        1. 关闭 Android Studio
                        2. 从您的项目中删除旧的 gradle 版本文件夹。
                        3. 重启 Android Studio。一切都应该正常工作

                        如果这不起作用,您还可以尝试以下方法:

                        • 删除项目 .gradle 文件夹中的所有版本,这样在重新打开 IDE 时,AS 只会重新下载新版本。
                        • 检查您的项目设置以获取 gradle 构建版本,并确保将其设置为最新版本。
                        • 检查其他模块是否未使用旧版本的 gradle 构建。您可以使用 "distributionUrl" 的项目搜索 (Ctrl+Shift+F) 进行搜索,并确保所有模块都具有最新版本.
                        • 删除根目录下的.gradle/caches,通常是C://Users/{you}/.gradle
                        • 在您的 AS 终端中尝试gradle build --stacktrace--info--scan--debug 以获得帮助和更多信息来调试您的问题。

                        【讨论】:

                          【解决方案20】:

                          在我的情况下,删除您的 gradle 文件,然后再次导入您的文件,它将起作用

                          【讨论】:

                            【解决方案21】:

                            删除C:\Users\username\.gradle\caches 文件夹。

                            【讨论】:

                              【解决方案22】:
                              1. 干净利落
                              2. flutter 运行 --debug
                              3. flutter build apk --release

                              调试将创建构建 gradle,构建 apk 将正常工作

                              【讨论】:

                                【解决方案23】:

                                从 7.0.0 以上的 Android Gradle 版本开始,从 gradle.properties 文件中删除 android.enableUnitTestBinaryResources

                                【讨论】:

                                  【解决方案24】:

                                  以下错误的原因之一可能是项目中配置的JVM版本与JDK位置不兼容。

                                  错误:

                                  org.gradle.api.plugins.InvalidPluginException: An exception occurred applying plugin request [id: 'com.android.application']
                                  
                                  Caused by: java.lang.NoSuchMethodException: java.lang.invoke.MethodHandles.privateLookupIn(java.lang.Class, java.lang.invoke.MethodHandles$Lookup)
                                  Caused by: java.util.concurrent.ExecutionException: java.lang.NoSuchMethodException: java.lang.invoke.MethodHandles.privateLookupIn(java.lang.Class, java.lang.invoke.MethodHandles$Lookup)
                                  Caused by: java.lang.NoSuchMethodException: java.lang.invoke.MethodHandles.privateLookupIn(java.lang.Class, java.lang.invoke.MethodHandles$Lookup)
                                  

                                  解决方法:

                                  注意:对于compileOptions{}kotlinOptions{}中的JVM版本

                                  • 对于 JVM 版本:JavaVersion.VERSION_1_8
                                  • 使用 JDK 位置:/java-1.8.0-openjdk-amd64

                                  • 对于 JVM 版本:JavaVersion.VERSION_11
                                  • 使用 JDK 位置:/java-1.11.0-openjdk-amd64

                                  【讨论】:

                                    【解决方案25】:

                                    试试这个简单快捷的解决方案。 无效的缓存解决了我的问题。 只需转到文件>使缓存无效/重新启动。

                                    【讨论】:

                                      【解决方案26】:

                                      以上解决方案都不适用于我,但这对我有用 只需添加gradle.properties 这一行 android.overridePathCheck=true 欲了解更多信息:https://www.programmersought.com/article/59853994468/

                                      【讨论】:

                                        【解决方案27】:

                                        首先,在尝试最复杂的事情之前,你应该让步骤变得更容易,在我的例子中,这个错误只是在我的路上发生,直到项目包含“空格”,例如:

                                        替换:

                                        C://Users/Silva Neto/OneDrive/Work space/project
                                        

                                        与:

                                        C://Users/SilvaNeto/OneDrive/Workspace/project
                                        

                                        请注意,我们将空格替换为 camelCase,但您可以选择任何您喜欢的命名方案,希望这可以解决您的问题。

                                        我希望这会有所帮助。

                                        【讨论】:

                                          【解决方案28】:

                                          将以下内容添加到您的 app/build.gradle 文件的顶部

                                          apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
                                          

                                          【讨论】:

                                            【解决方案29】:

                                            就我而言,我使用的是 gradle 版本 7.0.3。需要在build.gradle.kts中添加kotlin("android")

                                            plugins {
                                                id("com.android.application")
                                                kotlin("android") //<---------- add this
                                               
                                            }
                                            

                                            然后你必须使用 JDK 版本 11 (download here) 并添加到 android studio 设置 -> gradle 和同步项目

                                            【讨论】:

                                              猜你喜欢
                                              • 1970-01-01
                                              • 2019-01-02
                                              • 1970-01-01
                                              • 1970-01-01
                                              • 2022-11-04
                                              • 1970-01-01
                                              • 1970-01-01
                                              • 1970-01-01
                                              • 1970-01-01
                                              相关资源
                                              最近更新 更多