Сериализатор для класса xxx не найден. Убедитесь, что класс помечен как «@Serializable» и что установлен плагин компилятора сериализации

Этот вопрос поднимался здесь бесчисленное количество раз, но я просто не могу его понять.

Я следил за документацией и другими ответами 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, и для меня это не вариант.

см. stackoverflow.com/questions/71988144/…

sasikumar 29.08.2024 21:13

@sasikumar да, я читал это. Если вы действительно посмотрите на мой код, вы увидите, что я применил ответ.

kristyna 29.08.2024 21:18

Как этот вопрос набрал 12 000 просмотров за 18 часов?

Tenfour04 30.08.2024 15:34

@Tenfour04 Я тоже была в шоке

kristyna 30.08.2024 19:32
0
4
124 581
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Официальные шаги мне не помогли.

Из официальной документации : (В разделе «Использование плагина apply (старый способ)»)

Затем вы можете применить плагин (пример в Groovy):

применить плагин: 'kotlin' // или 'kotlin-multiplatform' для мультиплатформенных проектов

применить плагин: 'kotlinx-сериализация'

Заменять

apply plugin: 'kotlinx-serialization'

с

apply plugin: 'org.jetbrains.kotlin.plugin.serialization'

Тогда плагин сериализации работает

Заставляет меня задуматься, не устарел ли установленный вами плагин Kotlin IDE.

Tenfour04 30.08.2024 15:37

@Tenfour04 Tenfour04 Насколько я знаю, это входит в состав Android Studio, не так ли? У меня AS Koala с плагином Kotlin версии 241.15989.150.2411.11948838-AS.

kristyna 30.08.2024 19:30

Да, последние версии AS поддерживают его в актуальном состоянии, так что это не ваша проблема.

Tenfour04 30.08.2024 20:10

Другие вопросы по теме