Kotlinx.serialization: "Can't locate class SealedClassSerializer from package kotlinx.serialization"

Created on 12 Nov 2019  路  6Comments  路  Source: Kotlin/kotlinx.serialization

IntelliJ IDEA throws this exception when compiling:

Error:Kotlin: [Internal Error] java.lang.IllegalStateException: Backend Internal error: Exception during code generation
File being compiled at position: file:///home/johannes/projects/com.cedarsoft.monorepo/internal/closed/iris/src/main/java/com/cedarsoft/iris/photon/ImpactsForSource.kt
The root cause java.lang.IllegalArgumentException was thrown at: org.jetbrains.kotlinx.serialization.compiler.resolve.SearchUtilsKt.getFromPackage(SearchUtils.kt:72)
    at org.jetbrains.kotlin.codegen.CompilationErrorHandler.lambda$static$0(CompilationErrorHandler.java:35)
    at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generate(PackageCodegenImpl.java:76)
    at org.jetbrains.kotlin.codegen.DefaultCodegenFactory.generatePackage(CodegenFactory.kt:96)
    at org.jetbrains.kotlin.codegen.DefaultCodegenFactory.generateModule(CodegenFactory.kt:67)
    at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.doGenerateFiles(KotlinCodegenFacade.java:47)
    at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:39)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.generate(KotlinToJVMBytecodeCompiler.kt:637)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:195)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:165)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:55)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:84)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:42)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:104)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1479)
    at sun.reflect.GeneratedMethodAccessor88.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
    at sun.rmi.transport.Transport$1.run(Transport.java:200)
    at sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: Can't locate class SealedClassSerializer from package kotlinx.serialization
    at org.jetbrains.kotlinx.serialization.compiler.resolve.SearchUtilsKt.getFromPackage(SearchUtils.kt:72)
    at org.jetbrains.kotlinx.serialization.compiler.resolve.SearchUtilsKt.getClassFromSerializationPackage(SearchUtils.kt:70)
    at org.jetbrains.kotlinx.serialization.compiler.resolve.KSerializationUtilKt.polymorphicSerializerIfApplicableAutomatically(KSerializationUtil.kt:169)
    at org.jetbrains.kotlinx.serialization.compiler.resolve.KSerializationUtilKt.getClassSerializer(KSerializationUtil.kt:180)
    at org.jetbrains.kotlinx.serialization.compiler.backend.common.TypeUtilKt.findTypeSerializer(TypeUtil.kt:168)
    at org.jetbrains.kotlinx.serialization.compiler.backend.jvm.SerializableCompanionCodegenImpl.generateSerializerGetter(SerializableCompanionCodegenImpl.kt:41)
    at org.jetbrains.kotlinx.serialization.compiler.backend.common.SerializableCompanionCodegen.generate(SerializableCompanionCodegen.kt:47)
    at org.jetbrains.kotlinx.serialization.compiler.backend.jvm.SerializableCompanionCodegenImpl$Companion.generateSerializableExtensions(SerializableCompanionCodegenImpl.kt:35)
    at org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationCodegenExtension.generateClassSyntheticParts(SerializationCodegenExtension.kt:31)
    at org.jetbrains.kotlin.codegen.ImplementationBodyCodegen.generateSyntheticPartsAfterBody(ImplementationBodyCodegen.java:438)
    at org.jetbrains.kotlin.codegen.MemberCodegen.generate(MemberCodegen.java:132)
    at org.jetbrains.kotlin.codegen.MemberCodegen.genClassOrObject(MemberCodegen.java:302)
    at org.jetbrains.kotlin.codegen.MemberCodegen.genSyntheticClassOrObject(MemberCodegen.java:316)
    at org.jetbrains.kotlin.codegen.ClassBodyCodegen.generateBody(ClassBodyCodegen.java:111)
    at org.jetbrains.kotlin.codegen.MemberCodegen.generate(MemberCodegen.java:129)
    at org.jetbrains.kotlin.codegen.MemberCodegen.genClassOrObject(MemberCodegen.java:302)
    at org.jetbrains.kotlin.codegen.MemberCodegen.genClassOrObject(MemberCodegen.java:286)
    at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateClassesAndObjectsInFile(PackageCodegenImpl.java:118)
    at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateFile(PackageCodegenImpl.java:137)
    at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generate(PackageCodegenImpl.java:68)
    ... 28 more

Any idea? Gradle builds just fine.

In next release

Most helpful comment

Please wait until 0.14.0 released which is compatible with 1.3.60 release. It will happen in a couple of hours.

All 6 comments

Update Kotlin to 1.3.60 - now gradle does not longer compile it, too.

--> I have the Kotlin EAP plugin installed in IDEA. So this seems to be a regression with the lastest Kotlin release

If you're using Kotlin EAP, please use corresponding library version: 0.14.0-1.3.60-eap-76 (https://bintray.com/kotlin/kotlinx/kotlinx.serialization.runtime/0.14.0-1.3.60-eap-76)

Now that 1.3.60 stable is out is there any ETA for a kotlinx.serialization 0.14.0 release or is 0.14.0-1.3.60-eap-76 still the way to go?
Thanks!

Even using 0.14.0-1.3.60-eap-76 i get this error (having upgraded to 1.3.60)

Please wait until 0.14.0 released which is compatible with 1.3.60 release. It will happen in a couple of hours.

Tried 0.14.0 with 1.3.60 and the error is gone, thanks a lot again 馃憤

Was this page helpful?
0 / 5 - 0 ratings