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

Jetpack Compose项目集成kotlin-csv构建失败解决方法

问题根因

构建失败完全是依赖引入错误导致的:

  • Jetpack Compose安卓项目运行在Android JVM/ART环境,仅需要适配JVM平台的库产物。你额外引入的kotlin-csv-js是面向Kotlin/JS平台的依赖,和安卓项目要求的androidJvm运行时变体不兼容,这类跨平台依赖不能随意在单平台项目中引入,会直接触发依赖解析失败、构建变体匹配错误。
  • 资料里提到的pom.xml配置是Maven构建工具的专属配置文件,安卓项目默认用Gradle构建,项目里找不到pom.xml是正常情况,完全不需要为了这个库创建或修改pom文件。
正确配置步骤
  • 清理错误依赖
    打开app模块级的build.gradle(Groovy语法)或build.gradle.kts(Kotlin DSL语法),在dependencies块中删除JS平台的依赖行,仅保留JVM平台的kotlin-csv依赖:
// Groovy语法示例
dependencies {
    // 删掉下面这行错误依赖
    // implementation 'com.github.doyaaaaaken:kotlin-csv-js:1.3.0'
    implementation 'com.github.doyaaaaaken:kotlin-csv-jvm:1.3.0'
}
// Kotlin DSL语法示例
dependencies {
    // 删掉下面这行错误依赖
    // implementation("com.github.doyaaaaaken:kotlin-csv-js:1.3.0")
    implementation("com.github.doyaaaaaken:kotlin-csv-jvm:1.3.0")
}
  • 确认仓库配置
    AGP 7.1.3版本的仓库配置默认在项目根目录的settings.gradle文件中,打开后确认mavenCentral()已加入仓库列表,否则会无法拉取到库文件:
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral() // 必须配置,kotlin-csv通过Maven中央仓分发
    }
}
  • 点击Gradle同步按钮,等待同步完成即可消除构建错误。
测试代码运行说明

你写的独立main函数不能直接在安卓工程的main源码集下运行,你可以把CSV解析逻辑放到Compose的副作用或者事件回调中测试,示例:

@Composable
fun CsvTestPage() {
    LaunchedEffect(Unit) {
        val csvData: String = "a,b,c\nd,e,f"
        val rows: List<List<String>> = csvReader().readAll(csvData)
        // 控制台日志会输出 [[a, b, c], [d, e, f]]
        android.util.Log.d("CSV_TEST", rows.toString())
    }
}
避坑提示
  • Kotlin多平台库会发布面向不同运行环境的产物,纯安卓单平台项目不需要手动引入JS、Native、Common平台的依赖,否则必然出现运行时变体不匹配的构建错误。
  • kotlin-csv 1.3.0版本和AGP 7.1.3、Jetpack Compose完全兼容,不需要额外升级Gradle、AGP或者Kotlin插件版本。
  • 不要照搬Maven项目的配置逻辑到Gradle项目中,两类构建工具的配置文件、依赖规则不通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:48:29