迁移至AGP 9切换Kotlin多平台库插件后遭遇KSP配置不支持错误
看起来你在AGP 9迁移+Kotlin多平台的组合上踩了个实实在在的坑,我来帮你拆解下问题和可能的解决方向:
问题根源
这个错误信息已经说得很直白了:当前版本的KSP还没适配AGP 9引入的Kotlin多平台Variant API。AGP 9对Android多平台项目的变体管理逻辑做了更新,但KSP的核心配置方法addKspConfigurations()还没跟上这套新逻辑,直接导致了插件冲突。
可行的解决方向
优先检查KSP与AGP/Kotlin的版本匹配
你现在用的KSP 2.3.6,大概率是和AGP 9的适配还没完成。先确认你的Kotlin版本(AGP 9建议搭配Kotlin 1.9.20+),然后找对应版本的KSP预览版——Kotlin官方通常会在测试版里提前适配新AGP版本,注意KSP版本必须和Kotlin版本严格对应(比如Kotlin 1.9.20对应KSP 1.9.20-1.0.15这类格式)。临时降级或调整插件组合
如果项目进度紧张,最稳妥的办法是暂时把AGP回退到8.2.x稳定版,等KSP发布正式适配AGP 9的版本后再升级。毕竟AGP 9刚推出,生态工具的适配需要时间。
或者,你可以暂时保留com.android.library插件,同时单独引入org.jetbrains.kotlin.multiplatform插件,这种混合配置在AGP 9里大概率还能正常工作,避开那个变体API的冲突点。手动配置KSP(进阶救急方案)
如果你不想降级,也可以尝试手动绕过KSP的自动配置逻辑,自己给每个多平台变体绑定KSP任务和依赖,示例代码如下:// 为Android库变体手动配置KSP android.libraryVariants.all { variant -> // 创建对应变体的KSP配置 val kspConfig = configurations.create("ksp${variant.name.replaceFirstChar { it.uppercase() }}") // 添加KSP处理器依赖 dependencies.add(kspConfig.name, "你的处理器groupId:artifactId:version") // 注册KSP任务并绑定到编译流程 val compileTask = tasks.named("compile${variant.name.replaceFirstChar { it.uppercase() }}KotlinAndroid") val kspTask = tasks.register("ksp${variant.name.replaceFirstChar { it.uppercase() }}KotlinAndroid", com.google.devtools.ksp.gradle.KspTask::class.java) { classpath.from(kspConfig) source(compileTask.get().source) // 按需添加处理器参数、输出目录等配置 // arguments(mapOf("key" to "value")) } // 让编译任务依赖KSP任务 compileTask.get().dependsOn(kspTask) }这个方法需要你对Gradle任务模型有一定了解,而且可能随着AGP/KSP版本更新失效,适合临时救急。
跟进官方适配进度
Kotlin团队肯定在推进KSP对AGP 9的适配,你可以去Kotlin官方的GitHub仓库搜索相关Issue,看看有没有其他开发者遇到同样问题,或者官方有没有给出修复的时间节点。
如果你的Gradle配置里还有其他细节(比如多平台目标的具体配置、插件引入顺序),可以贴出来,说不定能找到更精准的临时补丁~




