Android Studio:找不到ID为'android-library'的插件。

178

我一直在尝试让ActionBarSherlock工作,并遇到了一些问题。其中一个问题是,在尝试构建它时出现了以下消息:

Plugin with id 'android-library' not found

具体来说:

D:\Projects\Android\actionbarsherlock>D:\Projects\Android\gradlew --info build
Starting Build
Settings evaluated using empty settings script.
Projects loaded. Root project using build file 
  'D:\Projects\Android\actionbarsherlock\build.gradle'.
Included projects: [root project 'actionbarsherlock']
Evaluating root project 'actionbarsherlock' using build file 
  'D:\Projects\Android\actionbarsherlock\build.gradle'.

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\Projects\Android\actionbarsherlock\build.gradle' line: 1

* What went wrong:
A problem occurred evaluating root project 'actionbarsherlock'.
> Plugin with id 'android-library' not found.

我将这视为一个单独线程中的ABS问题,因此我想知道如何解决以下一般问题:

Plugin with id 'android-library' not found

这是 build.gradle 文件:

apply plugin: 'android-library'

dependencies {
  compile 'com.android.support:support-v4:18.0.+'
}

android {
  compileSdkVersion 14
  buildToolsVersion '17.0.0'

  sourceSets {
    main {
      manifest.srcFile 'AndroidManifest.xml'
      java.srcDirs = ['src']
      res.srcDirs = ['res']
    }
  }
}

你能帮忙吗?

11个回答

287

指导Gradle从Maven Central仓库下载Android插件。

您可以通过将以下代码粘贴到Gradle构建文件的开头来实现:

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

将版本字符串1.0.+替换为最新版本。Gradle插件的发布版本可在官方Maven仓库MVNRepository artifact search上找到。


为了获取更加最新的信息,强烈建议升级 com.android.tools 的版本号,正如 @Elenasys 在后面的回答中提到的那样。否则,您可能会遇到此类问题: https://discuss.gradle.org/t/gradle-thinks-2-10-is-less-than-2-2-when-resolving-plugins/13434 - RenniePet
1
我需要将这个添加到我的项目的build.gradle中,将其添加到一个模块gradle文件中并没有帮助。 - syonip
我怎样才能知道我下载了哪个Gradle版本呢?顺便说一句,1.1.1对我来说可行。 - Binil Jacob
2
@binil 这是 Android Gradle 插件的一个版本,而不是 Gradle 本身。所有版本都列在 Maven 仓库 http://mvnrepository.com/artifact/com.android.tools.build/gradle 上。要列出构建依赖项,请运行 gradle buildEnvironment - Grzegorz Żur
这个回答 https://dev59.com/0WMl5IYBdhLWcg3wwZLc#48451418,在本帖中对我来说在2019年8月仍然有效。 - Bot
这在我的Android Studio 4.2 C15 SDK30上没有起作用。 - Miguel Tomás

30

仅供记录(我花了相当长时间),在 Grzegorz 的答案对我有效之前,我必须通过 SDK 管理器安装“android support repository”!

安装它并将以下代码添加到 actionbarsherlock 文件夹的 build.gradle 中的 apply plugin: 'android-library' 上方!

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

@beworker 我已经安装了“Android支持库”,但仍然出现相同的问题:“错误:(1,0)找不到ID为'android'的插件”。 - Sunishtha Singh
这在我的Android Studio 4.2 C15 SDK30上没有起作用。 - Miguel Tomás

18

1
将 com.android-library 更改为 com.android.library 在这里解决了问题。 - carl

12

在后续版本中,该插件的名称已更改为:

apply plugin: 'com.android.library'

正如其他答案中已经提到的,您需要Gradle工具才能使用它。如果使用3.0.1版本,则必须使用Google仓库,而不是MavenCentral或JCenter:

buildscript {
    repositories {
        ...
        //In IntelliJ or older versions of Android Studio
        //maven {
        //   url 'https://maven.google.com'
        //}
        google()//in newer versions of Android Studio
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}

这在我的Android Studio 4.2 C15 SDK30上没有起作用。 - Miguel Tomás
@MiguelSilva 它应该仍然可以工作:https://developer.android.com/studio/projects/android-library#Convert - 你遇到了什么错误? - Zoe stands with Ukraine
嗨,Zoe。请查看此帖子上的答案:https://dev59.com/0WMl5IYBdhLWcg3wwZLc#66483502 - Miguel Tomás

7
build.gradle文件中添加脚本,使用mavenCentral()进行配置。
buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'   
    }
}

6
除了之前的回答,当使用Gradle Kotlin DSL时,您应该在settings.gradle.kts中为Android插件添加解决方案
pluginManagement {

    repositories {
        google()
        gradlePluginPortal()
    }

    resolutionStrategy {
        eachPlugin {
            if(requested.id.namespace == "com.android") {
                useModule("com.android.tools.build:gradle:${requested.version}")
            }
        }
    }

}

接下来,您需要在build.gradle.kts中指定插件版本,例如:

plugins {
    id("com.android.library") version "4.1.3"
}

无需 buildscript


2

对于我来说,在Android Studio 4.2 C15 SDK30上,以下方法有效:

buildscript {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
        maven {
            url 'https://mvnrepository.com/artifact/com.android.tools.lint/lint-gradle-api'
        }
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.2.0-beta05"
    }
}
allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://maven.google.com' }
    }
}

1

将以下内容添加到build.gradle项目模块中:

// 顶层构建文件,您可以在其中添加所有子项目/模块共有的配置选项。

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

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

0

当我在build.gradle中应用插件时,遇到了这个问题:

plugin {
     id 'com.android.library'
     id 'org.jetbrains.kotlin.android'
}

这个插件不会自动工作,您需要在settings.gradle文件中添加以下代码。

pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven {
            url 'https://maven.google.com'
        }
    }
}

即使这样做,它仍会抛出找不到参数android()的错误,这是因为插件不会自动应用,所以我在build.gradle中进行了更改:

plugins {
    id 'com.android.library' version '7.4.2' apply true
    id 'org.jetbrains.kotlin.android' version '1.8.0' apply true
}

在编程中,apply true 放在结尾处对我很有帮助。

-2
相信不相信,在 Android Studio 4.2.2 中,位于 com.android.library 模块根目录中的空 settings.gradle 文件会导致此错误再次出现。
删除空的settings.gradle文件可解决此问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接