kotlin-suspend-transform-compiler-plugin icon indicating copy to clipboard operation
kotlin-suspend-transform-compiler-plugin copied to clipboard

kotlinx.serialization.protobuf.internal.ObjectEncoder does not define or inherit an implementation of the resolved method abstract void encodeNullableSerializableValue

Open casvanluijtelaar opened this issue 3 months ago • 1 comments

getting in error when implementing this library into our project:

Receiver class kotlinx.serialization.protobuf.internal.ObjectEncoder does not define or inherit an implementation of the resolved method 'abstract void encodeNullableSerializableValue(kotlinx.serialization.SerializationStrategy, java.lang.Object)' of interface kotlinx.serialization.encoding.Encoder.
	at kotlinx.serialization.protobuf.internal.ProtobufTaggedEncoder.encodeNullableSerializableElement(ProtobufTaggedEncoder.kt:173)
	at love.forte.plugin.suspendtrans.configuration.MarkAnnotation.write$Self$suspend_transform_plugin_configuration(SuspendTransformConfiguration.kt:82)
	at love.forte.plugin.suspendtrans.configuration.MarkAnnotation$$serializer.serialize(SuspendTransformConfiguration.kt:82)
	at love.forte.plugin.suspendtrans.configuration.MarkAnnotation$$serializer.serialize(SuspendTransformConfiguration.kt:82)
	at kotlinx.serialization.protobuf.internal.ProtobufEncoder.encodeSerializableValue(ProtobufEncoding.kt:146)
	at kotlinx.serialization.protobuf.internal.ProtobufTaggedEncoder.encodeSerializableElement(ProtobufTaggedEncoder.kt:151)
	at love.forte.plugin.suspendtrans.configuration.Transformer.write$Self$suspend_transform_plugin_configuration(SuspendTransformConfiguration.kt:227)
	at love.forte.plugin.suspendtrans.configuration.Transformer$$serializer.serialize(SuspendTransformConfiguration.kt:227)

Created the smallest version of our project that still reproduces the issue for me: https://github.com/casvanluijtelaar/suspend-transform-error-demo

casvanluijtelaar avatar Sep 08 '25 21:09 casvanluijtelaar

The temporary workaround still seems effective: you can try adding the kotlinx-serialization-protobuf dependency in buildSrc/build.gradle.kts to ensure consistent serialization versions across the build environment.

// the `buildSrc/build.gradle.kts`

dependencies {
    implementation(libs.android.gradlePlugin)
    implementation(libs.kotlin.gradlePlugin)
    implementation(libs.dokka.gradlePlugin)
    implementation(libs.kotlin.compiler.embeddable)
+   implementation(libs.kotlinx.serialization.protobuf)
}

The build environment does indeed have a serialization dependency, it comes from Dokka: org.jetbrains.dokka:dokka-gradle-plugin.

ForteScarlet avatar Sep 09 '25 03:09 ForteScarlet