【问题标题】:Gradle Error in Android Studio: Plugin with id 'com.android.library' not foundAndroid Studio 中的 Gradle 错误:未找到 ID 为“com.android.library”的插件
【发布时间】:2016-02-04 04:12:51
【问题描述】:

当我尝试在 Android Studio 中构建 Android 库项目时,我收到以下 Gradle 错误:

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

【问题讨论】:

  • 将 build.gradle 文件发布到根文件夹中
  • 我上面粘贴的文件是根目录下的那个。
  • 这是问题所在。您使用了错误的 build.gradle。在下面检查我的答案。

标签: android android-studio gradle build.gradle


【解决方案1】:

在我的情况下,由于 local.properties 文件中的 sdk/ndk 路径错误,我将项目从 hd 移动到另一个,这些设置是错误的,修复路径解决了问题。

【讨论】:

    【解决方案2】:
    buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'    }
    }
    
    apply plugin: 'com.android.library'
    

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

    【讨论】:

      【解决方案3】:

      您的问题是您使用的顶级文件无法使用此类插件。

      在 AS 中你有这样的结构:

      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

      【讨论】:

      • 谢谢@gabriele。据我了解,dependencies { classpath 'com.android.tools.build:gradle:1.3.1' } 告诉 Gradle 从repositories { jcenter() } 详细说明的存储库中提取 Android 工具库(包括 com.android.library 包)
      【解决方案4】:

      假设您有如下标准项目结构:

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

      您的同步失败似乎表明您的 SDK/IDE 配置存在问题。

      首先打开“项目结构”对话框并确保“Android SDK 位置:”值设置为正确的路径。

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

      第三,验证您是否安装了正确版本的“Android SDK Build-Tools”包。 (本例中为 23.0.2)

      最后只是为了验证我们没有任何不良状态,我建议从 File -> “Invalidate Caches /Restart...”执行“Invalidate and Restart”

      在这一切之后,我希望它应该同步。如果不尝试从项目的根目录运行./gradlew 并使用任何新信息更新我们。

      【讨论】:

      • 我按照上述所有步骤操作。我的 SDK 的路径是正确的,并且安装了 23.0.2 版本的 Android SDK Build-Tools。我也跑了./gradlew。它没有解决问题。我仍然遇到同样的同步错误。
      猜你喜欢
      • 1970-01-01
      • 2015-09-05
      • 2014-08-09
      • 2021-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      • 2020-09-15
      相关资源
      最近更新 更多