在构建一个使用Kotlin语言的Android应用程序时,你可能会遇到一个错误,说没有找到插件kotlin-android 。
构建控制台中的错误显示如下:
> Plugin with id 'kotlin-android' not found.
* Try:
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
* Exception is:
org.gradle.api.GradleScriptException:
A problem occurred evaluating project ':app'.
... 130 more
这个错误发生在Gradle试图为你的Android应用构建应用Kotlin语言插件,但找不到依赖性classpath 。
为了解决这个错误,你需要在你的build.gradle 文件中添加kotlin-gradle-plugin ,如下图所示:
buildscript {
ext.kotlin_version = '1.6.21'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
最新版本的Kotlin插件可以在Jetbrains Kotlin插件页面找到。
你可以通过改变上面的ext.kotlin_version 属性来改变使用的插件版本。
请注意,Kotlin插件需要被添加到根build.gradle 文件中,而不是app/build.gradle 文件。
app/build.gradle 文件是应用该插件的地方,如下图所示:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
// ...
}
当classpath 到Kotlin的插件没有被添加到根build.gradle 文件时,apply plugin: 'kotlin-android' 行会导致错误。
在最新的Android Studio版本中,根build.gradle 文件内容不再使用classpath 依赖关系。
根或顶层的依赖关系列举如下:
plugins {
id 'com.android.application' version '7.1.2' apply false
id 'com.android.library' version '7.1.2' apply false
id 'org.jetbrains.kotlin.android' version '1.6.21' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
最新的Android Studio使用Gradle插件DSL列出依赖关系,如Kotlin plugins for Gradle文档所示。
确保上面的高亮行出现在你的build.gradle 文件中,以解决这个问题。
现在你已经学会了如何解决Android构建错误的问题。未找到ID为'kotlin-android'的插件。
干得好!👍