错误:(1,0)找不到ID为'com.android.application'的插件


303

这是我第一次尝试Android Studio。我安装了0.8.0并更新为0.8.2。创建项目后,我立即收到错误消息:

错误:(1,0)找不到ID为'com.android.application'的插件

C:\ Users \ Bob \ AndroidStudioProjects \ HelloAgain6 \ app \ build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "com.example.bob.helloagain6"
        minSdkVersion 15
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

和C:\ Users \ Bob \ AndroidStudioProjects \ HelloAgain6 \ build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

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

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

2
我遇到了这个问题,但是突然我发现顶层build.gradle被删除了:),所以我从git存储库中复制了它,一切正常
Mehdi Khademloo

对我来说同样的事情,我的项目级别的build.gradle在时髦的合并过程中被移到了包装器属性所在的文件夹中,因此在根目录找不到它
RESTfulGeoffrey

Answers:


446

更新的答案(2020年4月10日)

最新摇篮: 6.3

版本检查:

  • ./gradlew -v

如何更新:

  • 设定网址: ./gradlew wrapper --gradle-version=3.6.2 --distribution-type=all
  • 更新: ./gradlew wrapper

最新的Android Gradle插件: 3.6.2

如果下面的代码片段添加到顶部您的build.gradle文件。Gradle将更新构建工具。

buildscript {
    repositories {
        google() // For Gradle 4.0+
        maven { url 'https://maven.google.com' } // For Gradle < 4.0
    }

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

在此处了解更多信息:https : //developer.android.com/studio/build/index.html以及有关版本兼容性的信息:https : //developer.android.com/studio/releases/gradle-plugin.html#updating-gradlehttps://dl.google.com/dl/android/maven2/index.html

原始答案

我遇到了同样的错误,您需要确保您的Gradle版本与Android Gradle插件兼容。

Gradle的最新版本是2.0,但是您需要使用1.12才能使用Android Gradle插件。


157
+1几个月后仍在更新您的答案
P1nGu1n 2014年

4
@ P1nGu1n没问题!如果每个人都看到最新信息,则会更容易。
Jared Burrows,2014年

4
@MartinPfeffer没问题。我将继续保持更新!
Jared Burrows 2014年

12
好的答案,尽管我禁不住想知道,为什么Google会这样部署Android Studio。这个错误是开始新项目时首先看到的错误。我的意思是,他们在想什么!?
BdR 2015年

10
Android开发有很多愚蠢的东西。为什么我们应该为所有这些gradle版本的东西烦恼
user25

32

如果您错过添加顶级构建文件,则会发生这种情况。

只需将build.gradle添加到顶层即可。

它应该看起来像这样

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.xx.y'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}


2
那正是他所拥有的。
Jared Burrows 2015年

文件的现有内容如何?只是删除它们?
汤姆·罗素

1
如果你正在做的火力教程,您需要 classpath 'com.android.tools.build:gradle:3.2.1'classpath 'com.google.gms:google-services:4.0.1'
userqwert

8

就我而言,我是从GitHub下载项目的,而Gradle文件丢失了。所以我只是创建一个成功构建的新项目。然后复制粘贴Gradle丢失的文件。并重新构建该项目对我有用。

在此处输入图片说明


经过数小时的尝试其他方法,这解决了我的问题
zyz82 '19

3

根等级文件:

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

allprojects {
    repositories {
        jcenter()
    }
}

Gradle-wrapper.properties文件:

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

3

一小时后,我在解决此错误消息的过程中发现了问题:

我无意中将根重命名build.gradle为filename builde.gradle,因此Android Studio不再识别它。

重命名即可build.gradle解决问题!


2

我写这篇文章并不是为许多准备的解决方案,而是给某些可能犯一个简单错误的人,例如为从SVN导入项目指定了错误的URL。它是为那些家伙准备的:)

我从SVN导入项目时发生了这种情况-> Studio自动提示打开项目->它要求Gradle位置-> D:\ Software \ Android \ gradle-2.5->然后出现错误。

我在Studio中配置的Gradle插件和Gradle可以使另一个SVN分支中的同一项目正常工作。我尝试更改Android Gradle插件和Gradle使其在错误分支上正常工作,但未成功。

最后,我发现这是我的以下错误:我尝试单独导入特定的应用程序,而不是与依赖库项目一起导入该应用程序。我最初用于导入的url的末尾是Application porject的名称。一旦删除它,并指定了包含应用程序项目及其依赖项目的父目录,一切就顺利了:)


2

我仍然有错误

 Could not find com.android.tools.build:gradle:3.0.0.

问题:jcenter()没有所需的库

解决方案:将google()添加为存储库

buildscript {
    repositories {
        google()
        jcenter()

    }
    dependencies {

        classpath "com.android.tools.build:gradle:3.0.0"
    }
}

1

其他答案对我不起作用,我猜ButterKnife3.0.0 alpha5之间发生了错误。

但是,我发现当我注释任何一个句子(BUtterKnife或3.0.0 alpha5)时,它都能正常工作。

因此,您应该避免重复或冲突


当我注释一个句子,无论是ButterKnife还是3.0.0 alpha5时,它都能正常工作。
Lancer.Yan

请提出一个新问题,而不是在此处回答问题。
ישואוהבאותך

请记住,每个Alpha版本尚未准备就绪。您不得在代码中使用Alpha版本。
ישואוהבאותך

对不起......我解决我的电脑上这个问题,但我不明白为什么....
Lancer.Yan

也许这种非常规的方法会有所帮助。带注释的任何人都会对Android Studio 3.0.0 alpha5有帮助。
Lancer.Yan


1

供将来参考:对我来说,此问题完全是由我没有以管理员身份运行Android Studio引起的。我将Windows上的快捷方式配置为始终以管理员身份运行,但是在重新安装Android Studio之后,该快捷方式被替换了,因此它在没有管理员权限的情况下运行。这导致了许多不透明的错误,包括此问题中的一个。


0

我在使用IntelliJ IDEA 13.1.5并dependenciesbuild.gradle文件中更改了Picasso和Retrofit的版本后遇到了同样的问题。我尝试使用许多解决方案,但没有结果。然后,我从远程git克隆了我的项目(在更改依赖项的版本之前将其推送到该项目),它可以正常工作!之后,我刚刚关闭了当前项目,并将旧项目从Gradle文件再次导入到IntelliJ IDEA中,它也起作用了!因此,我认为这是IDEA,Gradle和Android插件相交处的奇怪错误。我希望这些信息对IDEA用户或其他任何人都有用。


您可以通过特定的代码示例提供技术答案吗?
IgorGanapolsky '16

0

这只是使用Android Studio 1.3.2发生的,但是,由于我刚刚创建了项目,因此删除了该项目并再次创建了它。
似乎它不是第一次由Android Studio正确创建的,甚至没有按预期放置项目文件夹。


Android Studio版本应与插件版本匹配。
贾里德·伯罗斯

0

如果您在模块目录中使用android插件1.2.3运行模块任务,则会出现问题。尝试这个:

../gradlew -b ../build.gradle  -c ../settings.gradle  :module:xxx

该命令非常hacky,Gradle 1.2.3的版本非常老。
Jared Burrows

0

转到您的成绩文件,您可以在其中看到以下内容:

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


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

并更改classpath为:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
//        classpath 'com.android.tools.build:gradle:2.1.0'
        classpath 'com.android.tools.build:gradle-experimental:0.7.0-alpha1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

gradle-experimental是“实验性的”。这与问题无关。
Jared Burrows

@JaredBurrows OP的问题中的错误也可能发生在gradle-experimental实验中。今天发生在我身上。但是,VladimirKulyk应该知道仅建议对NDK构建使用gradle-experimental。
IgorGanapolsky '16


0

在顶层进行以下更改build.gradle以更新到最新版本的gradle 后,我收到了此错误消息:

//classpath 'com.android.tools.build:gradle:2.3.2' old
classpath 'com.android.tools.build:gradle:2.3.3' //new

当我被敌对的工作场所代理人连接后,我愚蠢地进行了更改。代理导致.jargradle新版本的文件损坏。可以通过检查罐子是否过大或是否可以解压缩来验证这一点。

为了解决该错误,我在家中连接了我的网络(该网络不位于代理之后),并从终端进行了刷新依赖关系:

./gradlew --refresh-dependencies

这将导致重新下载较新版本的gradle,并且不再发生该错误。


0

当项目目录的根目录中同时存在settings.gradlesettings.gradle.kts文件时(可能包含相同的模块),也可能会发生这种情况。您应该只有这些文件之一。


正确。当我直接用build.gradle导入项目,发现重复的Gradle和属性文件时,这发生在我身上
Okikioluwa

0

在项目级别的build.gradle文件中,我替换了这一行

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

与这个

classpath 'com.google.gms:google-services:4.3.3'

在添加了这两行并进行同步之后,一切都变得很好。希望这会帮助某人。


-1

模块应用程序build.gradle文件

apply plugin: 'com.android.application'

model{


    android {
        compileSdkVersion 23
        buildToolsVersion  "23.0.2"

        defaultConfig.with {
            applicationId "com.iamsafe"
            minSdkVersion 15
            targetSdkVersion 23





        }
     buildTypes {
            debug {
                minifyEnabled = false
                useProguard = true
                proguardFiles.add(file('proguard-rules.txt'))


            }
        }



    }

}



dependencies {
    compile 'com.android.support:support-v4:23.0.2'
    compile files('libs/asmack-android-8-0.8.10.jar')
    compile files('libs/commons-io-2.0.1.jar')
    compile files('libs/httpclient-osgi-4.2.1-sources.jar')
    compile files('libs/httpcore-4.3.2.jar')
    compile files('libs/httpmime-4.1.2.jar')
}


project build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.10'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

-1

在这种情况下,请检查以下代码

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

gradle-wrapper.properties在您的项目目录中检查以下内容disctributionUrl

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

如果它们彼此不兼容,那么您将遇到此问题。

对于com.android.tools.build:gradle:1.5.您需要的版本至少为2.8,但如果切换到更高的版本,com.android.tools.build:gradle:2.1.0则需要将gradle更新为2.9及更高版本,这可以通过将distributionUrlgradle-wrapper.properties 更改为2.9或更高版本来实现,如下所示

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.