Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

912
Views
Serialización de Kotlin: "Referencia no resuelta: serializador"

Estoy probando la serialización de Kotlin. Después de configurarlo siguiendo las instrucciones, obtengo la Unresolved reference: serializer con este código:

 val serializer : KSerializer<User> = User.serializer()

Estoy especulando que de alguna manera el complemento del compilador no se activó, pero no puedo ver lo que me perdí en la configuración.

Aquí está mi build.gradle.kts :

 buildscript { val kotlinVer: String by extra("1.3.20") repositories { jcenter() } dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVer") classpath("org.jetbrains.kotlin:kotlin-serialization:$kotlinVer") } } plugins { id("org.jetbrains.kotlin.jvm").version("1.3.20") application "kotlin" "kotlinx-serialization" } repositories { jcenter() maven("https://kotlin.bintray.com/kotlinx") } dependencies { implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") compile("org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.10.0") testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.jetbrains.kotlin:kotlin-test-junit") } application { mainClassName = "com.digizen.AppKt" }
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

En los plugins , no puede simplemente poner una cadena como lo hizo, las opciones son (para .kts ) :

 plugins { `«plugin id»` // (1) id(«plugin id») // (2) id(«plugin id») version «plugin version» [apply «false»] // (3) }

Creo que el complemento de Kotlin se está activando debido a id("org.jetbrains.kotlin.jvm").version("1.3.20") , no a causa de "kotlin" .

El README dice

Gradle (con bloque de complementos)

Puede configurar el complemento de serialización con el complemento kotlin usando los complementos DSL de Gradle en lugar del complemento de aplicación tradicional:

 plugins { id 'kotlin-multiplatform' version '1.3.20' id 'kotlinx-serialization' version '1.3.20' }

En este caso, dado que el complemento de serialización aún no se publica en el portal de complementos de Gradle, deberá agregar reglas de resolución de complementos a su configuración.gradle:

 pluginManagement { resolutionStrategy { eachPlugin { if (requested.id.id == "kotlin-multiplatform") { useModule("org.jetbrains.kotlin:kotlin-gradle-plugin:${requested.version}") } if (requested.id.id == "kotlinx-serialization") { useModule("org.jetbrains.kotlin:kotlin-serialization:${requested.version}") } } } }

No olvide descartar la dependencia de classpath en el complemento desde las dependencias de buildscript, de lo contrario, obtendrá un error sobre versiones en conflicto.

Entonces, el cambio mínimo sería eliminar las dos cadenas del bloque de plugins y agregar

 apply plugin: 'kotlinx-serialization'

en cambio.

over 4 years ago · Santiago Trujillo Report

0

Android Kotlin Respuesta

Siga la documentación: Adición de serialización para Android + Kotlin

Punto clave: ( build.gradle - Módulo )

 dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.2") }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!