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

Android Basics with Compose Codelab是否过时?构建报错求助

解决Jetpack Compose入门项目的版本兼容与编译错误

核心问题根源

你的问题本质是项目版本栈不匹配:旧模板的AGP、Kotlin、Compose版本和你当前用的最新Android Studio、JDK 20不兼容,导致一系列编译和识别错误。以下是分步解决方案:


1. 统一AGP与Kotlin插件版本

最新稳定版Android Studio(如Flamingo/Electric Eel)需搭配匹配的AGP和Kotlin版本,避免编译器不兼容问题:

  • 打开项目根目录的build.gradle(Project级),替换为以下配置:
    plugins {
        id 'com.android.application' version '8.1.2' apply false
        id 'com.android.library' version '8.1.2' apply false
        id 'org.jetbrains.kotlin.android' version '1.9.10' apply false
    }
    
  • 同步项目时,Android Studio会提示更新Kotlin插件,直接点击「Update」完成升级,解决“Kotlin库版本不兼容”的报错。

2. 修正CompileSdk与Compose依赖版本

AGP 7.0.4不支持compileSdk 34,升级AGP后需同步调整依赖:

  • 打开app模块的build.gradle,修改配置:
    android {
        compileSdk 34
        defaultConfig {
            minSdk 21 // 若课程要求minSdk23可改为23,Compose 1.5.x支持minSdk21+
            targetSdk 34
        }
    
        buildFeatures {
            compose true
        }
    
        composeOptions {
            kotlinCompilerExtensionVersion '1.5.3' // 1.9.x Kotlin对应1.5.x扩展版本
        }
    }
    
    dependencies {
        implementation 'androidx.activity:activity-compose:1.7.2'
        // 使用Compose BOM统一依赖版本,避免冲突
        implementation platform('androidx.compose:compose-bom:2023.08.00')
        implementation 'androidx.compose.ui:ui'
        implementation 'androidx.compose.ui:ui-graphics'
        implementation 'androidx.compose.ui:ui-tooling-preview'
        implementation 'androidx.compose.material3:material3'
    }
    
  • 同步后,setContent未识别的问题会自动解决,因为activity-compose依赖已适配当前版本。

3. 解决values.xml中shapeAppearanceCornerSmall错误

这个错误是Material主题属性不匹配导致的:

  • 打开res/values/themes.xml,将主题父类改为Material 3(适配当前Compose依赖):
    <style name="Theme.MyFirstComposeApp" parent="Theme.Material3.Light.NoActionBar">
        <!-- 保留原有颜色、导航栏等属性配置 -->
    </style>
    
  • 若坚持使用课程的Material 2模板,可将?attr/shapeAppearanceCornerSmall替换为Material 2的属性?attr/shapeAppearanceSmallComponent。

4. 调整JDK版本适配AGP 8.x

AGP 8.0+官方推荐使用JDK 17,JDK 20存在兼容性风险:

  • 打开File > Project Structure > SDK Location,选择「Embedded JDK」(Android Studio自带的JDK 17),或手动指定本地JDK 17路径。
  • 同步项目,消除JDK版本带来的隐性构建问题。

额外注意事项

升级AGP到8.x时出现更多问题,通常是旧依赖版本不兼容导致的——务必使用Compose BOM来统一所有Compose相关依赖版本,同时确保activity-compose、lifecycle等基础库版本与AGP匹配。另外,根目录gradle/wrapper/gradle-wrapper.properties中需对应升级Gradle版本:

distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip

内容的提问来源于stack exchange,提问作者Mark R Russell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 03:17:08