2015-11-03 142 views
6

当我试图建立一个Android图书馆项目Android Studio中,我收到以下错误摇篮:摇篮错误Android Studio中:插件ID为“com.android.library”未找到

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

我对Gradle相当陌生,这对我来说很困惑。这是为什么发生?

该文件的build.gradle如下:

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

张贴在根文件夹 –

+0

我上面粘贴是在根文件夹中的一个文件的的build.gradle文件。 – jackofblades

+2

这是问题。您正在使用错误的build.gradle。在下面检查我的答案。 –

回答

12

你的问题是,你正在使用顶级文件,你不能使用这种插件。

在,你有这样的结构:

Root/ 
+ lib 
    | build.gradle 
| build.gradle 
| settings.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:1.3.1' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

在你lib/build.gradle,您可以使用发布的代码问题:

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

终于在你的你settings.gradle

include ':lib' 

还可以参考this question

+0

谢谢你的帮助! – jackofblades

+0

谢谢@gabriele。据我了解,依赖关系类路径com.android.tools.build:gradle:1.3.1' }' 告诉Gradle将Android工具库 - 其中包括com.android.library包 - 从储存库由 详细说明库'jcenter() } – WillC

2

假设你有一个标准的项目结构如下所示:

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

您未能同步似乎表明您的SDK的问题/ IDE配置。

开始通过打开“项目结构”对话框,并确保“Android SDK中的位置:”值设置为正确的路径。

其次,打开SDK管理器并重新确保您有正确的SDK位置路径设置。

三,验证你有“Android SDK中内建工具”包安装的正确版本。 (在这种情况下23.0.2)

最后只是为了验证,我们没有任何不良状态,我建议这样做,从文件的“无效,并重新开始” - >“的Invalidate缓存/重新启动......”

所有这一切,我期望它应该同步。如果不尝试从项目的根目录运行./gradlew与任何新的信息更新我们。

+0

我遵循了上述所有步骤。我的SDK的路径是正确的,安装了版本为23.0.2的Android SDK Build-Tools。我也跑了'。/ gradlew'。它没有解决问题。我仍然得到相同的同步错误。 – jackofblades

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

apply plugin: 'com.android.library' 

将这些行添加到库的gradle文件中。

0

在我的情况,是由于内部local.properties文件错误的SDK/NDK路径,我从高清移动到另一个项目和这些设置是错误的,固定的路径解决了这一问题。

相关问题