当在Android studio中构建你的Android应用程序时,可能会出现一个错误,说没有找到ID为'com.android.application'的插件。
这个错误看起来如下:
* Exception is:
org.gradle.api.plugins.UnknownPluginException:
Plugin [id: 'com.android.application'] was not found
in any of the following sources:
UnknownPluginException
意味着Gradle无法找到成功构建你的应用程序所需的Android Gradle插件。
要解决这个错误,你需要检查三件事:
- 检查谷歌Maven仓库是否列在你的
settings.gradle
文件中 - 检查Android Gradle插件是否被添加到项目
build.gradle
文件中 - 检查Android Gradle插件是否与你的Gradle版本兼容
让我们一起学习如何解决这个问题。
检查你的settings.gradle文件
Android Gradle插件是从Google的Maven仓库下载的。你需要确保仓库google()
在你的Android项目中列在pluginManagement
。
settings.gradle
文件是用来列出Gradle为你的Android项目下载依赖项的仓库的文件。
该文件的内容应该如下:
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "KotlinApp"
include ':app'
如果你在settings.gradle
中只看到以下一行:
include ':app'
那么这意味着你的Android项目是在很久以前创建的。
你的安卓项目的资源库应该位于build.gradle
文件中,而不是。接下来让我们去那里。
检查你的build.gradle文件
一个Android应用项目有两个build.gradle
文件:
<project>/app/build.gradle
是针对 模块的特定配置app
<project>/build.gradle
是你当前Android项目的全局配置
<project>/build.gradle
文件应该包含对Android Gradle插件的依赖性和它的版本,如下图所示:
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
}
确保你的build.gradle
文件与上面显示的文件相似。
对于较早的Android应用项目,build.gradle
文件还将包含如下所示的资源库列表:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
如果你的内容与上面的类似,那么你需要用mavenCentral()
和google()
替换jcenter()
。
这是因为自2021年3月31日以来,JCenter版本库已成为只读。你仍然可以从该仓库下载模块,但那里不会有新版本发布。
此外,你需要将你的Android Gradle依赖性更新到最新版本,如下图所示:
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.2'
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
现在你的安卓Gradle插件版本和版本库列表都是最新的了。
最后要检查的是你的Android项目所使用的Gradle版本。
检查你的Gradle版本
每个使用Android Studio生成的Android项目都包含一个gradle-wrapper.properties
文件。
该文件位于gradle/wrapper/
文件夹中,它定义了你的项目所使用的Gradle版本。
下面是一个关于gradle-wrapper.properties
文件内容的例子:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
上面突出显示的distributionUrl
属性显示了你的Android项目使用的Gradle版本。
gradle-7.2-bin.zip
表示该项目使用的是Gradle版本 。7.2
你需要使用支持你的Android Gradle插件版本的Gradle版本
这里是Gradle和Android Gradle的兼容性列表。
由于你之前已经将Android Gradle更新到了版本7.1.2
,所以你应该使用表中所说的Gradle版本7.2+
。
要更新你的Gradle版本,只需改变.zip
文件名中的版本:
gradle-7.0-bin.zip
gradle-7.2-bin.zip
gradle-7.3-bin.zip
请记住,你还需要检查Android Studio的版本,因为旧的Android Studio不支持最新的Android Gradle插件(链接):
一旦Gradle版本更新,再次构建你的Android应用程序。com.android.application
的问题现在应该已经解决了。
总结
现在你已经学会了如何解决在Android Studio中找不到com.android.application
的问题。
随着Android操作系统得到新的发布和增加新的功能,旧版本的Gradle和Android Gradle将变得过时。
当你把一个项目导入Android Studio时,第一次构建应该警告你Gradle构建过程中的任何不兼容性。
有时,你需要更新Gradle和Android Gradle的版本,才能成功构建项目。
在某些情况下,你可能会看到一个缺少Gradle文件的Android项目。为了解决这个问题,你可以尝试用Android Studio创建一个新项目。
当新项目构建成功后,将Gradle文件和gradle/
文件夹复制到你的旧Android项目。
复制这些Gradle文件
之后,修改你的settings.gradle
文件中的rootProject.name
属性,以匹配旧项目。
我希望这个教程对你有用。🙏