Sha Sha Chu
07/24/2025, 6:05 PMalexey.andreev
07/30/2025, 6:22 AMproperties files in src/main/resources?sindrenm
07/31/2025, 8:00 AMritesh
08/01/2025, 5:29 AMAlexander Ioffe
08/04/2025, 4:07 AMkotlin {
jvm()
...
sourceSets {
val commonMain by getting { ... }
val jvmMain by getting { ... }
}
}
dependencies {
add("kspCommonMainMetadata", project(":my-processor"))
add("kspJvm", project(":my-processor"))
}
In practice however, this seems to blow up my build by generating the same code in commonMain twice!
The first time in MyProject/build/generated/ksp/metadata/commonMain/kotlin and the second in MyProject/build/generated/ksp/jvm/jvmMain/kotlin.
Now to be fair, if I have some class in jvmMain it will only appear in the latter location but why is everything from the commonMain directory also there???Hakan Mehmed
08/04/2025, 8:36 PMDeprecation notice for KSP1
KSP1 is deprecated and support will be removed. We are focusing our development efforts on KSP2 to provide better performance, improved APIs, and a more robust architecture for the future.
Compatibility Limitations
Please be aware that KSP1 will not be updated to support upcoming major versions of the Android and Kotlin toolchains. Specifically, KSP1 will not be compatible with:
Kotlin version 2.3.0 and higher.
Android Gradle Plugin (AGP) version 9.0 and higher.
Projects using KSP1 may not behave correctly (or fail the build) if you upgrade to these or any subsequent versions of AGP or Kotlin.
To ensure your annotation processors continue to function correctly and to take advantage of future tooling advancements, it is crucial to migrate your projects to use KSP2 (which has been the default since beginning of 2025)
Support for KSP1 is expected to be removed by end of 2025 (possibly even earlier)
If there are any bugs in KSP2 that are total blockers for the migration to it, please let us knowscana
08/05/2025, 6:02 PM> A failure occurred while executing com.google.devtools.ksp.gradle.KspAAWorkerAction
> Error while resolving ksp.org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl
from RAW_FIR to STATUS
current declaration phase STATUS
origin: Source
session: class ksp.org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSourcesSession (Kotlin reflection is not available)
module data: class ksp.org.jetbrains.kotlin.analysis.low.level.api.fir.projectStructure.LLFirModuleData (Kotlin reflection is not available)
KaModule: class ksp.org.jetbrains.kotlin.analysis.project.structure.impl.KaSourceModuleImpl (Kotlin reflection is not available)
platform: JVM (21)Sandeep Dhami
08/06/2025, 12:07 PMError type '<ERROR TYPE: PlatformResourcesWrapper>' is not resolvable in the current round of processing.
I’ve detailed the problem and shared a code snippet in this GitHub issue:
🔗 https://github.com/evant/kotlin-inject/issues/499
Would appreciate any guidance or workaround suggestions 🙏! CC @evant @eygrabermicah
08/06/2025, 5:55 PMrnett
08/09/2025, 5:50 AMKSValueArgument.value, it states that it may be a KSClassDeclaration for annotation arguments of type Enum (in this caseKSClassDeclaration.classKind equals to ClassKind.ENUM_CLASS);. However, ClassKind.ENUM_CLASS is used for the enclosing enum class . If this is accurate, how can you determine the entry that is the actual value of the argument? Or is the documentation just mistaken and it's actually ClassKind.ENUM_ENTRY ?Zach G
08/13/2025, 11:42 PMHakan Mehmed
08/26/2025, 8:22 PMKSP Gradle plugin 2.0.3 to require minimum AGP version 8.4.0+
Please be aware that starting with version 2.0.3, the Kotlin Symbol Processing (KSP) Gradle plugin will introduce a new minimum requirement for the Android Gradle Plugin (AGP). To ensure your project continues to build successfully, you must use AGP version 8.4.0 or higher when using KSP 2.0.3 or any newer release. This will be a runtime requirement, meaning your builds will fail if you update KSP without also updating AGP to the required minimum version or a newer one.
The reason for this is to allow cleaning up various runtime checks related to AGP version within KSP itself. If for any reason this version of AGP seems too new for your project using KSP, do let us know.
We also plan to update the min AGP version as time progresses. :)Alexander Ioffe
08/29/2025, 7:29 PMIrCall ?Lukas Anda
08/31/2025, 3:33 PMresolver.getDeclarationsFromPackage returns the generated declarations in second pass whereas in single-target setup, it finds everything it needs in first pass. can I somehow mitigate that? I am using newest version of KSPTower Guidev2
09/04/2025, 7:53 AMe: [ksp] Cannot use unbound generics in query functions. It must be bound to a type through base Dao class. - core.persistence.database.dao.AbstractDao.querySingle(androidx.sqlite.db.SupportSQLiteQuery)
e: [ksp] Cannot use unbound generics in query functions. It must be bound to a type through base Dao class. - core.persistence.database.dao.AbstractDao.querySingleOrNull(androidx.sqlite.db.SupportSQLiteQuery)
e: [ksp] Cannot use unbound generics in query functions. It must be bound to a type through base Dao class. - core.persistence.database.dao.AbstractDao.queryList(androidx.sqlite.db.SupportSQLiteQuery)
e: [ksp] Type of the parameter must be a class annotated with @Entity or a collection/array of it. - obj in core.persistence.database.dao.AbstractDao.save(TEntity)
e: [ksp] Type of the parameter must be a class annotated with @Entity or a collection/array of it. - obj in core.persistence.database.dao.AbstractDao.save(TEntity[])
e: [ksp] Type of the parameter must be a class annotated with @Entity or a collection/array of it. - obj in core.persistence.database.dao.AbstractDao.save(java.util.ArrayList<TEntity>)
e: [ksp] Type of the parameter must be a class annotated with @Entity or a collection/array of it. - obj in core.persistence.database.dao.AbstractDao.save(java.util.List<? extends TEntity>)
e: [ksp] Type of the parameter must be a class annotated with @Entity or a collection/array of it. - obj in core.persistence.database.dao.AbstractDao.saveAsync(TEntity[])
e: [ksp] Type of the parameter must be a class annotated with @Entity or a collection/array of it. - obj in core.persistence.database.dao.AbstractDao.saveAndReturnId(TEntity)
e: [ksp] Type of the parameter must be a class annotated with @Entity or a collection/array of it. - obj in core.persistence.database.dao.AbstractDao.saveAll(TEntity)
e: [ksp] Type of the parameter must be a class annotated with @Entity or a collection/array of it. - obj in core.persistence.database.dao.AbstractDao.saveAll(TEntity[])
e: [ksp] Type of the parameter must be a class annotated with @Entity or a collection/array of it. - obj in core.persistence.database.dao.AbstractDao.delete(TEntity)
e: [ksp] Type of the parameter must be a class annotated with @Entity or a collection/array of it. - obj in core.persistence.database.dao.AbstractDao.deleteAsync(TEntity)
e: [ksp] Type of the parameter must be a class annotated with @Entity or a collection/array of it. - obj in core.persistence.database.dao.AbstractDao.update(TEntity)
e: [ksp] Type of the parameter must be a class annotated with @Entity or a collection/array of it. - obj in core.persistence.database.dao.AbstractDao.updateAsync(TEntity)Zac Sweers
09/09/2025, 8:28 AMlistOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach {
it.binaries.framework { baseName = "shared" }
}
But the result is any KSP generated code is duplicated for each type to their own source set even if just iosMain once would sufficeralf
09/11/2025, 10:12 PM* What went wrong:
Some problems were found with the configuration of task ':recipes:common:impl:kspDebugKotlinAndroid' (type 'KspAATask').
- Gradle detected a problem with the following location: '/Users/ralf/Development/app-platform/recipes/common/impl/build/generated/compose/resourceGenerator/kotlin/androidDebugResourceAccessors'.
Reason: Task ':recipes:common:impl:kspDebugKotlinAndroid' uses this output of task ':recipes:common:impl:generateResourceAccessorsForAndroidDebug' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed.
Possible solutions:
1. Declare task ':recipes:common:impl:generateResourceAccessorsForAndroidDebug' as an input of ':recipes:common:impl:kspDebugKotlinAndroid'.
2. Declare an explicit dependency on ':recipes:common:impl:generateResourceAccessorsForAndroidDebug' from ':recipes:common:impl:kspDebugKotlinAndroid' using Task#dependsOn.
3. Declare an explicit dependency on ':recipes:common:impl:generateResourceAccessorsForAndroidDebug' from ':recipes:common:impl:kspDebugKotlinAndroid' using Task#mustRunAfter.
For more information, please refer to <https://docs.gradle.org/9.0.0/userguide/validation_problems.html#implicit_dependency> in the Gradle documentation.
Anyone else? This from the changelog makes me suspicious
Migrate KSP off AGP's legacy Variant API #2250
Tolriq
09/12/2025, 6:53 AMA problem was found with the configuration of task ':modules:wear:wear-models:kspDebugKotlin' (type 'KspAATask').
- Gradle detected a problem with the following location: '/modules/wear/wear-models/build/generated/source/wire/debug'.
Reason: Task ':modules:wear:wear-models:kspDebugKotlin' uses this output of task ':modules:wear:wear-models:generateDebugProtos' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed.
Possible solutions:
1. Declare task ':modules:wear:wear-models:generateDebugProtos' as an input of ':modules:wear:wear-models:kspDebugKotlin'.
2. Declare an explicit dependency on ':modules:wear:wear-models:generateDebugProtos' from ':modules:wear:wear-models:kspDebugKotlin' using Task#dependsOn.
3. Declare an explicit dependency on ':modules:wear:wear-models:generateDebugProtos' from ':modules:wear:wear-models:kspDebugKotlin' using Task#mustRunAfter.
For more information, please refer to <https://docs.gradle.org/9.0.0/userguide/validation_problems.html#implicit_dependency> in the Gradle documentation.Maya
09/12/2025, 6:12 PMPhil Kagebein
09/17/2025, 4:46 PM2.1.20 -> and 2.2.10, along with ksp from 2.1.20-1.0.32 -> 2.2.10-2.0.2 and since the upgrade, I am seeing some code generation issues.
In my multiplatform project, I have an annotation processor that generates some code based off the class it is attached to.
In addition to this annotation processor, I have a custom gradle plugin that needs to use the output of the annotation processor to function properly.
Before the version upgrades, I linked the annotation processor to the gradle plugin via:
target.tasks.withType<KspTaskMetadata>().all {
saveStateTask.dependsOn(this)
}
target.tasks.withType<org.jetbrains.kotlin.gradle.dsl.KotlinCompile<*>>().all {
if (name != "kspCommonMainKotlinMetadata") {
dependsOn("kspCommonMainKotlinMetadata")
}
}
So that kspCommonMainKotlinMetadata will run first and all the necessary code will be generated. Then the saveStateTask (what the custom gradle plugin runs) is dependent on kspCommonMainKotlinMetadata as well.
Since the upgrade, I have had to change those dependencies to this since the types have changed:
target.tasks.withType<KspAATask>().all {
if (name == "kspCommonMainKotlinMetadata") {
saveStateTask.dependsOn(this)
}
}
target.tasks.withType<KotlinCompilationTask<*>>().all {
if (name != "kspCommonMainKotlinMetadata") {
dependsOn("kspCommonMainKotlinMetadata")
}
}
However, after this change, on subsequent builds of any client, the ksp annotation processor will not generate any code, as it does not resolve any symbols. So it seems like the ksp compilation tasks sometimes do not run prior to resolving the annotations.
Does anyone have any ideas what I could look to improve on?JP Sugarbroad
09/26/2025, 11:57 PM> Task :redacted:kspKotlin FAILED
e: [ksp] Unknown error processing element
e: [ksp] io.micronaut.inject.processing.ProcessingException
I don't suppose there's more detail than this? Maybe a stack trace?atlantis210
09/30/2025, 5:38 AMursus
10/07/2025, 5:38 PMMaya
10/08/2025, 8:03 PMRobert Jaros
10/10/2025, 4:49 AMebtokyo
10/14/2025, 6:18 AMZac Sweers
10/22/2025, 2:33 AMMaya
10/22/2025, 5:10 PMeygraber
10/22/2025, 5:58 PMkotlin.native.enableKlibsCrossCompilation == false?jamireh
10/24/2025, 8:55 PM