You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

添加kotlinx-serialization-json 1.9.0后出现Kotlin版本不兼容编译错误

添加kotlinx-serialization-json 1.9.0后出现Kotlin版本不兼容编译错误

看起来你遇到的是典型的Kotlin版本依赖冲突问题,核心原因是你的项目里几个关键组件的版本没有对齐:Android Gradle Plugin(AGP)、Kotlin语言本身、还有kotlinx-serialization库。我来帮你一步步解决:

问题根源拆解

你用的是Android Studio Otter(2025.2.1),对应的AGP版本是8.13.0,这个版本的AGP要求使用Kotlin 2.2.0或更高版本。但你的项目在libs.versions.toml里指定了Kotlin 1.9.0,同时又引入了和Kotlin 1.9.x绑定的kotlinx-serialization-json 1.9.0。这就导致了编译时的版本冲突:AGP会自动拉取它需要的Kotlin 2.2.0标准库,但你的Kotlin编译器还是1.9.0,无法识别2.2.0的元数据格式,从而报错。

而且你还漏掉了一个关键步骤:没有添加kotlinx-serialization的Gradle插件,这也是使用序列化库必不可少的配置。


解决方案:对齐所有版本(二选一)

方案一:升级Kotlin到AGP要求的版本(推荐,因为你已经用了最新的Android Studio)

这个方案让你继续使用最新的Android Studio和AGP,同时调整其他依赖版本来匹配:

  1. 更新Kotlin版本
    打开你的libs.versions.toml文件,把Kotlin版本改成2.2.0:

    [versions]
    kotlin = "2.2.0"
    
  2. 使用兼容的kotlinx-serialization版本
    Kotlin 2.2.0对应的kotlinx-serialization-json版本是1.8.0(序列化库的版本和Kotlin的小版本对齐),修改app/build.gradle.kts里的依赖:

    // 替换原来的序列化依赖
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0")
    
  3. 添加序列化插件
    这是你之前漏掉的关键步骤!

    • 先在libs.versions.toml里添加插件版本配置:
      [versions]
      # 新增这一行,版本和序列化库保持一致
      kotlinSerialization = "1.8.0"
      
      [plugins]
      # 新增这一行
      jetbrains-kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinSerialization" }
      
    • 然后在app/build.gradle.kts的plugins区块里添加插件:
      plugins {
          alias(libs.plugins.android.application)
          alias(libs.plugins.jetbrains.kotlin.android)
          alias(libs.plugins.jetbrains.kotlin.serialization) // 新增这一行
      }
      
  4. 同步并重建项目

    • 点击Android Studio右上角的"Sync Project with Gradle Files"按钮
    • 执行Build > Clean Project,然后Build > Rebuild Project
    • 最后再做一次File > Invalidate Caches... > Invalidate and Restart,确保所有缓存都被清理

方案二:降级AGP到兼容Kotlin 1.9.0的版本

如果你不想升级Kotlin,也可以把AGP降级到支持Kotlin 1.9.0的版本(比如AGP 8.5.2):

  1. 降级AGP版本
    修改libs.versions.toml里的AGP版本:

    [versions]
    agp = "8.5.2"
    
  2. 添加序列化插件
    同样需要补全插件配置:

    • libs.versions.toml里添加:
      [versions]
      kotlinSerialization = "1.9.0"
      
      [plugins]
      jetbrains-kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinSerialization" }
      
    • app/build.gradle.kts的plugins里添加:
      plugins {
          alias(libs.plugins.android.application)
          alias(libs.plugins.jetbrains.kotlin.android)
          alias(libs.plugins.jetbrains.kotlin.serialization)
      }
      
  3. 同步并重建
    同样执行同步、清理重建、 invalidate缓存重启的操作。


额外检查

如果你做完以上步骤还是有问题,可以通过以下命令查看依赖树,确认有没有其他库在偷偷拉取不兼容的Kotlin版本:

./gradlew app:dependencies

搜索kotlin-stdlib,看看有没有版本不一致的条目,如果有,可以在app/build.gradle.kts里强制统一Kotlin版本:

configurations.all {
    resolutionStrategy.force("org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0")
}

按照上面的步骤来,应该就能解决你的版本冲突问题了!

火山引擎 最新活动