Gradle Error in Android Studio: Plugin with id 

2019-04-25 08:06发布

问题:

When I am trying to Build an Android Library Project in Android Studio, I am getting the following Gradle error:

Gradle sync failed: Plugin with id 'com.android.library' not found.

I am pretty new to Gradle and this is very confusing for me. Why is this happening?

The build.gradle file is as follows:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 8
        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.1.0'
}

回答1:

Your issue is that you are using the top-level file where you can't use this kind of plugin.

In AS you have a structure like this:

Root/
 + lib
    | build.gradle
 | build.gradle
 | settings.gradle 

In your top-level file you can use:

// 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:1.3.1'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

In your lib/build.gradle you can use the code posted in the question:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 8
        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.1.0'
}

Finally in your settings.gradle

include ':lib'

Also you can refer this question.



回答2:

Assuming you have a standard project structure like the following:

yourProject/
 + .idea/
 + gradle/wrapper/
 + lib-module/
    | build.gradle
 | build.gradle
 | gradlew
 | gradlew.bat
 | settings.gradle

Your failure to sync seems to indicate an issue with your SDK/IDE config.

Start by opening the "Project Structure" dialog and ensure that the "Android SDK location:" value is set to the correct path.

Second, open the SDK manager and again ensure that you have the correct SDK location path set.

Third, verify that you have the correct version of the "Android SDK Build-Tools" package installed. (23.0.2 in this case)

Finally just to verify that we don't have any bad state I recommend doing an "Invalidate and Restart" from File -> "Invalidate Caches /Restart..."

After all of this I expect that it should sync up. If not try to run ./gradlew from the root of your project and update us with any new information.



回答3:

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

apply plugin: 'com.android.library'

Add these lines to gradle file of library.



回答4:

In my case was due to wrong sdk/ndk paths inside local.properties file, i moved the project from an hd to another and these settings were wrong, fixing the paths fixed the problem.