Skip to content

Request: KSP2 Support #369

@eduardbosch-jt

Description

@eduardbosch-jt

Hi,

I recently tried to update our project to use KSP2, but unfortunately, it fails when I build a module that has Dagger, Anvil, Glide, and DeepLinkDispatch. If I remove DeepLinkDispatch, it builds without issues.

Here's the error:

[ksp] KaInvalidLifetimeOwnerAccessException: Access to invalid ksp.org.jetbrains.kotlin.analysis.api.platform.lifetime.KotlinAlwaysAccessibleLifetimeToken@3a855068: PSI has changed since creation
ksp.org.jetbrains.kotlin.analysis.api.lifetime.KaInvalidLifetimeOwnerAccessException: Access to invalid ksp.org.jetbrains.kotlin.analysis.api.platform.lifetime.KotlinAlwaysAccessibleLifetimeToken@3a855068: PSI has changed since creation
	at ksp.org.jetbrains.kotlin.analysis.api.fir.types.KaFirUsualClassType.getQualifiers(KaFirUsualClassType.kt:146)
	at com.google.devtools.ksp.impl.symbol.kotlin.UtilKt.typeArguments(util.kt:458)
	at com.google.devtools.ksp.impl.IncrementalContextAA.recordWithArgs(IncrementalContextAA.kt:110)
	at com.google.devtools.ksp.impl.IncrementalContextAA.recordLookup(IncrementalContextAA.kt:142)
	at com.google.devtools.ksp.impl.IncrementalContextAAKt.recordLookup(IncrementalContextAA.kt:232)
	at com.google.devtools.ksp.impl.symbol.kotlin.resolved.KSTypeReferenceResolvedImpl.resolve(KSTypeReferenceResolvedImpl.kt:71)
	at androidx.room.compiler.processing.ksp.KspAnnotated$Companion.isSameAnnotationClass$room_compiler_processing(KspAnnotated.kt:215)
	at androidx.room.compiler.processing.ksp.KspAnnotated$findAnnotations$1.invoke(KspAnnotated.kt:36)
	at androidx.room.compiler.processing.ksp.KspAnnotated$findAnnotations$1.invoke(KspAnnotated.kt:36)
	at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:171)
	at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:194)
	at kotlin.sequences.TransformingSequence$iterator$1.hasNext(Sequences.kt:214)
	at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:817)
	at androidx.room.compiler.processing.ksp.KspAnnotated.getAnnotations(KspAnnotated.kt:70)
	at androidx.room.compiler.processing.InternalXAnnotated.getAnnotations(InternalXAnnotated.kt:46)
	at androidx.room.compiler.processing.XAnnotated.getAnnotation(XAnnotated.kt:147)
	at androidx.room.compiler.processing.ksp.KspTypeElement.getAnnotation(KspTypeElement.kt)
	at com.airbnb.deeplinkdispatch.DeepLinkProcessor.customAnnotationPrefixes(DeepLinkProcessor.kt:401)
	at com.airbnb.deeplinkdispatch.DeepLinkProcessor.process(DeepLinkProcessor.kt:171)
	at com.airbnb.deeplinkdispatch.BaseProcessor.process(BaseProcessor.kt:54)
	at com.google.devtools.ksp.impl.KotlinSymbolProcessing$execute$1$1.invoke(KotlinSymbolProcessing.kt:562)
	at com.google.devtools.ksp.impl.KotlinSymbolProcessing$execute$1$1.invoke(KotlinSymbolProcessing.kt:560)
	at ksp.com.google.devtools.ksp.common.IncrementalContextBase.closeFilesOnException(IncrementalContextBase.kt:400)
	at com.google.devtools.ksp.impl.KotlinSymbolProcessing.execute(KotlinSymbolProcessing.kt:560)
	at com.google.devtools.ksp.impl.KSPLoader$Companion.loadAndRunKSP(KSPLoader.kt:37)
	at com.google.devtools.ksp.impl.KSPLoader.loadAndRunKSP(KSPLoader.kt)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at com.google.devtools.ksp.gradle.KspAAWorkerAction.execute(KspAATask.kt:618)
	at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
	at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
	at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
	at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
	at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)
	at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
	at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:210)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:205)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:54)
	at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
	at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)
	at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:174)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:194)
	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:127)
	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:169)
	at org.gradle.internal.Factories$1.create(Factories.java:31)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:263)
	at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:127)
	at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:132)
	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:133)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)

I tried to replicate it on a new project, but it built, so maybe it's related to the libraries that my bigger project has.

I'm not using Room directly, but WorkManager is with version 2.6.1, could this be related to this issue? #367

Will it be possible to update this library so it's compatible with KSP2?

Many thanks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions