报错: Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin 'org.jetbrains.kotlin.android'. Caused by: java.lang.IllegalStateException: Can't infer current AndroidGradlePluginVersion: Is the Android plugin applied? Caused by: org.gradle.internal.event.ListenerNotificationException: Failed to notify project evaluation listener. Cause: compileSdkVersion is not specified.
时间: 2025-05-31 16:50:12 浏览: 65
### Gradle 构建错误解决方案
在 Android 项目中遇到 `Could not find method android()`、`Failed to apply plugin org.jetbrains.kotlin.android` 和 `compileSdkVersion is not specified` 的问题,通常是因为以下几个原因:
#### 1. **缺少必要的插件声明**
如果 `android()` 方法未被识别,则可能是由于未正确应用 Android 插件。确保在项目的根目录下的 `build.gradle` 文件中包含以下内容:
```groovy
plugins {
id 'com.android.application' version '7.4.2' apply false
id 'com.android.library' version '7.4.2' apply false
id 'org.jetbrains.kotlin.android' version '1.9.0' apply false
}
```
这一步骤用于定义全局可用的插件版本并禁用自动应用[^1]。
对于模块级别的 `build.gradle` 文件(通常是 `app/build.gradle`),需要显式启用这些插件:
```groovy
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
```
#### 2. **未指定 compileSdkVersion**
`compileSdkVersion` 是必需的属性之一,它指定了目标设备使用的 API 版本。如果没有设置该值,Gradle 将无法继续构建过程。可以在模块级 `build.gradle` 中添加如下配置:
```groovy
android {
compileSdkVersion 33 // 替换为你希望的目标 SDK 版本
defaultConfig {
minSdkVersion 21
targetSdkVersion 33
versionCode 1
versionName "1.0"
}
}
```
这里假设使用的是最新的 Android SDK 版本 (API Level 33),可以根据实际情况调整。
#### 3. **Kotlin 插件冲突或缺失**
当出现 `Failed to apply plugin org.jetbrains.kotlin.android` 错误时,可能的原因包括 Kotlin 插件版本不匹配或者未正确定义依赖关系。确认 `buildscript` 部分中的 Kotlin 版本与实际需求一致:
```groovy
buildscript {
ext.kotlin_version = '1.9.0' // 确保这是最新稳定版
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:7.4.2" // 使用兼容的 AGP 版本
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
```
注意:AGP(Android Gradle Plugin)和 Kotlin 插件之间存在严格的版本约束,请查阅官方文档以获取支持矩阵。
#### 4. **清理缓存重新同步**
即使解决了上述问题,仍需执行以下操作来清除潜在残留数据:
```bash
./gradlew clean --refresh-dependencies
```
此外,在 IDE 中选择菜单项 “File -> Invalidate Caches / Restart”,强制刷新索引和服务状态[^2]。
---
以下是修正后的完整示例文件结构:
**Root-Level `build.gradle`:**
```groovy
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '1.9.0'
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:7.4.2"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
```
**Module-Level (`app/build.gradle`) Example:**
```groovy
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
android {
compileSdkVersion 33
defaultConfig {
applicationId "com.example.myproject"
minSdkVersion 21
targetSdkVersion 33
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
kotlinOptions {
jvmTarget = '1.8'
}
}
```
---
###
阅读全文
相关推荐










