提问人:Antonio 提问时间:11/10/2023 更新时间:11/12/2023 访问量:129
Kotlin 序列化未应用于模块
Kotlin Serialization is not applied to the module
问:
在我的项目中,我需要使用 Kotlin.Serialization,因此通过记录我自己,我看到了如何导入插件。
在这里是块。build.gradle(project)
plugins
plugins {
id 'com.android.application' version '8.0.1' apply false
id 'com.android.library' version '8.0.1' apply false
id 'org.jetbrains.kotlin.android' version '1.9.20' apply false
id 'com.google.dagger.hilt.android' version '2.48.1' apply false
id 'androidx.navigation.safeargs' version '2.5.3' apply false
id 'org.jetbrains.kotlin.plugin.serialization' version '1.9.20'
}
这里是插件块:build.gradle(app)
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt'
id 'androidx.navigation.safeargs.kotlin'
id 'com.google.dagger.hilt.android'
id 'org.jetbrains.kotlin.plugin.serialization'
}
在那里,我实现了以下库:
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0"
问题是,用这样的方式注释以下类:@Serializable
@Serializable
data class User(
val name: String = "",
val surname: String = "",
val phone: String = "",
val email: String = "",
)
Android Studio 给我留下了这个警告:
Kotlinx.serialization 编译器插件未应用于模块, 因此,不会处理此注释。
我浏览了 StackOverflow 并注意到其中的代码是正确的,所以我真的不知道如何修复此警告。build.gradle
答:
0赞
IODevBlue
11/10/2023
#1
在项目级别 build.gradle 中尝试此操作
plugins {
id 'org.jetbrains.kotlin.plugin.serialization' version '1.9.20' apply false
}
这可能就是问题所在。
评论
0赞
Antonio
11/10/2023
不幸的是,这并不能解决警告
0赞
ΓDΛ
11/10/2023
#2
我看到你忘了把它添加到.build.gradle(app)
plugins {
...
id 'kotlinx-serialization'
...
}
评论
0赞
Marko Topolnik
11/11/2023
这个建议似乎与文档相矛盾。你能添加一个提到这个插件ID的官方文档链接吗?
0赞
Antonio
11/11/2023
事实上,文档谈到了这个插件 id 'org.jetbrains.kotlin.plugin.serialization',但我也尝试了推荐的那个,但它没有解决
0赞
ΓDΛ
11/11/2023
感谢您的光临。我在自己的项目中使用它,此外,我还查看了给出的其他答案。stackoverflow.com/a/54780989/5595926
0赞
Marko Topolnik
11/11/2023
在插件的早期版本中似乎是这样(年份是 2019 年)。
0赞
Antonio
11/11/2023
即使提到的答案也不能解决问题(此外,我在提出问题之前已经咨询过的答案。
1赞
Marko Topolnik
11/12/2023
#3
这个版本的序列化插件似乎有一个错误。即使插件被应用并且序列化程序被注册,该功能也丢失了。解决方法是使用函数 。MySerializable.serializer()
kotlinx.serialization.serializer<MySerializable>()
评论
User
@Serializable
id 'org.jetbrains.kotlin.plugin.serialization'
MySerializable.serializer()
val serializer = serializer<MySerializable>()
Serializers.kt