You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级旧项目至API35用Compose时遇compileSdkVersion未指定错误求助

旧项目升级API 35+Compose时compileSdkVersion异常的排查与解决

问题描述

将旧项目升级到API 35以适配Jetpack Compose时,触发异常:

com.android.builder.errors.EvalIssueException: compileSdkVersion is not specified. Please add it to build.gradle

但compileSdkVersion在Gradle插件8.x+版本中已被废弃,官方推荐使用compileSdk。且已尝试多种配置仍无效,同步Gradle时还出现两个重复警告:

  • Namespace not specified(已在模块级声明命名空间)
  • compileSdkVersion is not specified(各种配置组合都试过)

已尝试的无效方案

  • 在模块级build.gradle的defaultConfig内外添加compileSdkVersion
  • 在模块级build.gradle的defaultConfig内外添加compileSdk
  • 同时配置compileSdk和compileSdkVersion
  • 清除Android Studio缓存并重启
  • 删除项目根目录下的.gradle文件夹

当前环境配置

  • Android Studio 2024.2.2
  • Gradle Plugin 8.10.2
  • Kotlin 2.0.20
  • Android Plugin 8.8.0

核心排查与修复方案

你的怀疑是对的——问题大概率出在项目级build.gradle未配置统一参数。Gradle插件8.x+支持在项目级统一声明compileSdk、namespace等核心配置,模块级会自动继承;若项目级缺失这些配置,模块级的单独声明可能被忽略,导致虚假警告和异常。

步骤1:配置项目级build.gradle

打开项目根目录的build.gradle,添加统一的Android配置块:

plugins {
    id 'com.android.application' version '8.10.2' apply false
    id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
}

// 新增统一配置
android {
    compileSdk 35

    defaultConfig {
        minSdk 21 // 根据项目实际需求调整
        targetSdk 35
    }

    // 项目基础命名空间,模块可在此基础上扩展
    namespace 'com.your.base.package'
}

步骤2:简化模块级build.gradle

模块级只需保留特有配置,无需重复声明继承自项目级的参数:

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

android {
    defaultConfig {
        // 模块完整包名,若与项目级一致可省略
        applicationId "com.your.base.package.main"
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = '17'
    }

    // 启用Compose支持
    buildFeatures {
        compose true
    }

    // 适配Kotlin 2.0.20的Compose编译器版本
    composeOptions {
        kotlinCompilerExtensionVersion '1.5.11'
    }
}

dependencies {
    implementation "androidx.compose.ui:ui:1.6.8"
    implementation "androidx.compose.material3:material3:1.2.1"
    // 其他依赖...
}

步骤3:收尾检查

  1. 点击Sync Now同步Gradle配置
  2. 若仍有问题,检查模块级build.gradle是否存在语法错误(如括号不匹配、逗号遗漏)
  3. 执行Build > Clean Project后重新同步

内容的提问来源于stack exchange,提问作者UnaDeKalamares

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:43:13