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

如何修复Compose Compiler与Kotlin版本不兼容的编译运行错误?

解决Compose Compiler与Kotlin版本不兼容的编译错误

核心问题

你碰到的是Compose Compiler和Kotlin的强绑定限制:Compose Compiler 1.1.1只兼容Kotlin 1.6.10,而当前项目用的Kotlin 1.7.21不在官方兼容列表里。之前降级没解决,大概率是配置没改全,或者依赖冲突导致旧版本没真正生效。

修复方案

方案1:匹配兼容版本(推荐,无风险)

直接升级Compose Compiler到适配Kotlin 1.7.21的版本,比降级Kotlin更合理:

  • 打开项目根目录的build.gradle(Project级),保持Kotlin版本1.7.21,修改Compose Compiler对应版本:
    // Project级build.gradle
    plugins {
        id 'com.android.application' version '7.4.2' apply false
        id 'org.jetbrains.kotlin.android' version '1.7.21' apply false
    }
    
  • 打开App模块的build.gradle(Module级),更新Compose Compiler和核心依赖版本:
    // Module级build.gradle
    android {
        buildFeatures {
            compose true
        }
        composeOptions {
            kotlinCompilerExtensionVersion '1.3.2' // 适配Kotlin 1.7.21的稳定版
        }
    }
    
    dependencies {
        implementation 'androidx.compose.ui:ui:1.3.3'
        implementation 'androidx.compose.material:material:1.3.1'
        implementation 'androidx.compose.ui:ui-tooling-preview:1.3.3'
        debugImplementation 'androidx.compose.ui:ui-tooling:1.3.3'
    }
    
  • 同步项目后,点击菜单栏Build -> Clean Project,再Rebuild Project

方案2:强制忽略版本检查(临时应急,不推荐)

如果暂时不想升级Compose,可添加参数跳过校验,但可能出现未知编译/运行问题:

  • 在Module级build.gradle中添加配置:
    android {
        composeOptions {
            kotlinCompilerExtensionVersion '1.1.1'
            suppressKotlinVersionCompatibilityCheck true // 强制跳过版本检查
        }
    }
    
  • 同步后尝试构建,若出现异常立即回退到方案1

方案3:排查降级未生效原因

如果坚持降级Kotlin到1.6.10,检查以下几点:

  • 确认Project级build.gradle中所有Kotlin相关插件(比如org.jetbrains.kotlin.android、kotlin-kapt)的版本都改为1.6.10
  • 检查Module级build.gradle是否有硬编码的高版本Kotlin依赖,比如implementation "org.jetbrains.kotlin:kotlin-stdlib:1.7.21",需改为1.6.10
  • 执行File -> Invalidate Caches... -> 勾选Invalidate and Restart,清除IDE缓存后重新同步

额外提醒

  • 优先用Compose BOM管理依赖版本,避免手动匹配出错:在Module级build.gradle的dependencies中添加
    implementation platform('androidx.compose:compose-bom:2023.01.00')
    // 后续引入Compose依赖无需写版本号
    implementation 'androidx.compose.ui:ui'
    implementation 'androidx.compose.material:material'
    
  • 修改版本后一定要先清理构建缓存再重建,避免旧缓存导致版本不匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:20:40