From f990f1933d694153cf28d12f8e0d7d163dd03cfe Mon Sep 17 00:00:00 2001 From: Vitalii Samolovskikh Date: Sat, 29 Nov 2025 13:57:34 +0100 Subject: [PATCH] Fix ClassNotFoundException in case there are no SymbolProcessorProviders. Improved the error message. Removed an unnecessary dependency `compileOnly(project(":kotlin-analysis-api"))`. --- gradle-plugin/build.gradle.kts | 1 - .../kotlin/com/google/devtools/ksp/gradle/KspAATask.kt | 10 +++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gradle-plugin/build.gradle.kts b/gradle-plugin/build.gradle.kts index b0304a3acd..cd7a0ad6d3 100644 --- a/gradle-plugin/build.gradle.kts +++ b/gradle-plugin/build.gradle.kts @@ -26,7 +26,6 @@ dependencies { // replace AGP dependency w/ gradle-api when we have source registering API available. compileOnly("com.android.tools.build:gradle:$agpBaseVersion") compileOnly(gradleApi()) - compileOnly(project(":kotlin-analysis-api")) // Ensure stdlib version is not inconsistent due to kotlin plugin version. compileOnly(kotlin("stdlib", version = kotlinBaseVersion)) implementation(project(":api")) diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspAATask.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspAATask.kt index 8c89047c9b..edb861c9b9 100644 --- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspAATask.kt +++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspAATask.kt @@ -20,7 +20,6 @@ package com.google.devtools.ksp.gradle import com.google.devtools.ksp.gradle.utils.allKotlinSourceSetsObservable import com.google.devtools.ksp.gradle.utils.canUseGeneratedKotlinApi import com.google.devtools.ksp.gradle.utils.enableProjectIsolationCompatibleCodepath -import com.google.devtools.ksp.impl.KotlinSymbolProcessing import com.google.devtools.ksp.processing.ExitCode import com.google.devtools.ksp.processing.KSPCommonConfig import com.google.devtools.ksp.processing.KSPConfig @@ -584,8 +583,13 @@ abstract class KspAAWorkerAction : WorkAction { val kspGradleLogger = KspGradleLogger(gradleCfg.logLevel.get().ordinal) if (processorProviders.isEmpty()) { - kspGradleLogger.error("No providers found in processor classpath.") - throw Exception("KSP failed with exit code: ${KotlinSymbolProcessing.ExitCode.PROCESSING_ERROR}") + kspGradleLogger.error( + "No providers found in processor classpath.\n" + + "Make sure you have added KSP processor dependencies using 'ksp' configuration.\n" + + "Processors must implement com.google.devtools.ksp.processing.SymbolProcessorProvider and " + + "register the implementation via META-INF/services." + ) + throw Exception("KSP failed with exit code: ${ExitCode.PROCESSING_ERROR}") } else { kspGradleLogger.info( "loaded provider(s): " +