Этот вопрос поднимался здесь бесчисленное количество раз, но я просто не могу его понять.
Я следил за документацией и другими ответами SO.
// My class
@Serializable
class DSFile(val name: String, val data: ByteArray)
// build.gradle
ext {
kotlin_version = '1.9.24'
}
dependencies {
classpath 'com.android.tools.build:gradle:8.1.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
}
// app/build.gradle
apply plugin: 'com.android.application'
apply plugin: 'org.jetbrains.kotlin.android'
apply plugin: 'kotlinx-serialization'
dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3"
}
IDE ни на что не жалуется. Во время выполнения я получаю
Serializer for class DSFile is not found. Please ensure that class is marked as '@Serializable' and that the serialization compiler plugin is applied.
Я применил плагин, добавил его в свой путь к классам, версия такая же, как версия Kotlin, в классе использовалась аннотация. Что еще мне не хватает?
Для более высокой версии org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3
требуется Kotlin 2.0, и для меня это не вариант.
@sasikumar да, я читал это. Если вы действительно посмотрите на мой код, вы увидите, что я применил ответ.
Как этот вопрос набрал 12 000 просмотров за 18 часов?
@Tenfour04 Я тоже была в шоке
Официальные шаги мне не помогли.
Из официальной документации : (В разделе «Использование плагина apply (старый способ)»)
Затем вы можете применить плагин (пример в Groovy):
применить плагин: 'kotlin' // или 'kotlin-multiplatform' для мультиплатформенных проектов
применить плагин: 'kotlinx-сериализация'
Заменять
apply plugin: 'kotlinx-serialization'
с
apply plugin: 'org.jetbrains.kotlin.plugin.serialization'
Тогда плагин сериализации работает
Заставляет меня задуматься, не устарел ли установленный вами плагин Kotlin IDE.
@Tenfour04 Tenfour04 Насколько я знаю, это входит в состав Android Studio, не так ли? У меня AS Koala с плагином Kotlin версии 241.15989.150.2411.11948838-AS.
Да, последние версии AS поддерживают его в актуальном состоянии, так что это не ваша проблема.
см. stackoverflow.com/questions/71988144/…