Kotlinx 实现中序列化错误

问题描述 投票:0回答:1

早上好,我是应用程序开发新手,我正在尝试将 kotlinx.serialization 添加到我的项目中。然而,我在实现它时遇到了困难,因为我的项目在构建时崩溃了。尽管我努力了,但还是没能解决这个问题。

为了提供上下文,我的应用程序利用了 Retrofit。当用户在搜索栏中搜索字母或名字时,它应该返回超级英雄列表。

这是我目前拥有的:

build.gradle.kts(:app):

plugins {
    id(libs.plugins.androidApplication)
    id(libs.plugins.jetbrainsKotlinAndroid)
    id(libs.plugins.hilt)
    id(libs.plugins.kapt)
    id(libs.plugins.serialization)
}

dependencies {
   // Serialization
    implementation(libs.kotlinx.serialization.json)
    implementation(libs.retrofit2.kotlinx.serialization.converter)
}
libs.versions.toml:

[versions]
kotlin = "1.9.23"

[libraries]
kotlinxSerializationJson = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" }
retrofit2KotlinxSerializationConverter = { module = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter", version.ref = "retrofit2KotlinxSerializationConverter" }

[plugins]
serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version = "kotlin" }
build.gradle.kts(App):

plugins {
    id(libs.plugins.hilt) apply false
    id(libs.plugins.kapt) apply false
    id(libs.plugins.androidApplication) apply false
    id(libs.plugins.jetbrainsKotlinAndroid) apply false
    id(libs.plugins.serialization) apply false
}

如果我只留下以下依赖项:

dependencies {
   // Serialization
    implementation(libs.kotlinx.serialization.json)
    implementation(libs.retrofit2.kotlinx.serialization.converter)
}

它可以编译,但是当我在搜索栏中搜索某些内容时遇到此错误: “kotlinx.serialization 无法找到特定类型的序列化器。”但是,我的数据类中有一个

@Serializable
注释。当我将鼠标悬停在
@Serializable
上时,我看到消息:“kotlinx.serialization 编译器插件未应用于该模块,因此不会处理此注释。请确保您已正确设置构建脚本并重新导入该项目。”

谢谢您的帮助。

kotlin gradle serialization retrofit
1个回答
0
投票

您的版本目录文件中有此行:

serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version = "kotlin" }

但是参考常见的 Kotlin 版本应该是:

serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
© www.soinside.com 2019 - 2024. All rights reserved.