2015-11-03 80 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路徑,我從高清移動到另一個項目和這些設置是錯誤的,固定的路徑解決了這一問題。

相關問題