jackofblades
jackofblades

Reputation: 305

Gradle Error in Android Studio: Plugin with id 'com.android.library' not found

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'
}

Upvotes: 8

Views: 36546

Answers (4)

Andrea Leganza
Andrea Leganza

Reputation: 477

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.

Upvotes: 0

user5371335
user5371335

Reputation:

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.

Upvotes: 1

Gabriele Mariotti
Gabriele Mariotti

Reputation: 363825

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.

Upvotes: 16

TrevJonez
TrevJonez

Reputation: 959

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.

Upvotes: 2

Related Questions