Hi Everyone.. Could you please help me with below issue.. it works fine in Android, but crashed in iOS......
IDEA Version:
IntelliJ IDEA 2020.2.2 (Community Edition)
Build #IC-202.7319.50, built on September 15, 2020
sample code:
interface IElement{}
@Serializable
@SerialName("Item")
data class ElementImpl:IElement
class JsonExporter {
suspend fun export(): String {
val module = SerializersModule {
polymorphic(IElement::class, ElementImpl::class, ElementImpl.serializer())
}
val elementsList<ElementImpl> = ...
val jsonString = Json { serializersModule = module }.encodeToString(elementsList)
return jsonString
}
}
Multiplatform setup:
dependencies {
//others
classpath "org.jetbrains.kotlinkotlin serialization1.4.10"
}
plugins {
id 'org.jetbrains.kotlin.multiplatform' version '1.4.10'
id 'org.jetbrains.kotlin.plugin.serialization' version '1.4.10'
}
sourceSets {
commonMain {
dependencies {
//serialization
implementation "org.jetbrains.kotlinxkotlinx serialization json1.0.0-RC2"
}
}
}
Error:
Exception doesn't match @Throws-specified class list and thus isn't propagated from Kotlin to Objective-C/Swift as NSError.
It is considered unexpected and unhandled instead. Program will be terminated.
Uncaught Kotlin exception: kotlinx.serialization.SerializationException: Serializer for class 'IElement' is not found.
Mark the class as @Serializable or provide the serializer explicitly.
On Kotlin/Native explicitly declared serializer should be used for interfaces and enums without @Serializable annotation
External Libraries that got added transitively after i added "kotlinx-serialization-json:1.0.0-RC2"
Gradle: org.jetbrains.kotlinxkotlinx serialization core iosx64klib:1.0.0-RC2
Gradle: org.jetbrains.kotlinxkotlinx serialization core jvm1.0.0-RC2@jar
Gradle: org.jetbrains.kotlinxkotlinx serialization core metadata1.0.0-RC2
Gradle: org.jetbrains.kotlinxkotlinx serialization json iosx64klib:1.0.0-RC2
Gradle: org.jetbrains.kotlinxkotlinx serialization json jvm1.0.0-RC2@jar
Gradle: org.jetbrains.kotlinxkotlinx serialization json metadata1.0.0-RC2