Using kotlin.sourceSets DSL to add Kotlin sources is not allowed with built-in K

0 阅读1分钟

使用com.google.devtools.ksp插件编译apk的时候报不允许使用kotlin.sourceSets在内置的kotlin中了。

Using kotlin.sourceSets DSL to add Kotlin sources is not allowed with built-in Kotlin.
Kotlin source set 'debug' contains: [D:\Project\ComposeApp\app\build\generated\ksp\debug\kotlin, D:\Project\ComposeApp\app\build\generated\ksp\debug\java]
Solution: Use android.sourceSets DSL instead.
For more information, see https://developer.android.com/r/tools/built-in-kotlin
To suppress this error, set android.disallowKotlinSourceSets=false in gradle.properties.

原因

Android Gradle 插件 9.0 引入了内置 Kotlin 支持,并默认启用该支持。也就是说android gradle 插件9.0之后不支持kotlin.sourceSets的方式来设置kotlin源码路径了。

官方文档:developer.android.com/build/migra… 我用的ksp版本是"2.0.21-1.0.27",Android gradle插件版本是"9.1.0"。

应该是ksp中用到了kotlin.sourceSets。

id("com.google.devtools.ksp") version "2.0.21-1.0.27" apply false

解决方法

升级ksp版本到"2.3.4",这个版本适配了9.0之后的gradle插件版本