Несовместимые типы: NonExistentClass невозможно преобразовать в аннотацию.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Несовместимые типы: NonExistentClass невозможно преобразовать в аннотацию.

Сообщение Anonymous »

Я впервые реализую хранилище данных в своем приложении, но эта ошибка отображается во всем сложном классе

Код: Выделить всё

incompatible types: NonExistentClass cannot be converted to Annotation
Файл .proto выглядит следующим образом:

Код: Выделить всё

syntax = "proto3";

option java_package = "com.myapp.app";
option java_multiple_files = true;

message LastBackup {
bool valid = 1;
string time = 2;
bool enabled  = 3;
int64 id = 4;
CustomData data = 5;
}

message CustomData {
int32 id = 1;
repeated CustomItem items = 2;
}

message CustomItem {
string name = 4;
string image = 5;
}
ошибка в основном возникает во всех сложных сообщениях: CustomData и CustomItem
Я пытался переименовать их с помощью My просто чтобы изменить ситуацию и посмотреть, может ли ошибка возникнуть из-за дублированного сообщения, но сообщение все равно появляется.
Причина, по которой я их переименовал, заключается в том, что CustomData также является классом данных Kotlin, определенным для обработки ответа Json с сервера.
Итак, общая цель заключалась в резервном копировании ответа Json хранилища данных protobuf. В приложении есть класс данных Backup.kt, который содержит:

Код: Выделить всё

data class Backup(
val valid: Boolean,
val time : String,
val enable: Boolean,
val id : Long,
val data: CustomData
)

data class CustomData (
val id: int,
val items: List
)

data class CustomItem (
val name: String,
val image: String
)
Поэтому я создаю прототип файла, как определено выше.
Тогда у меня тоже возникла проблема:

Код: Выделить всё

jetified-protobuf-java-4.26.0 (com.google.protobuf:protobuf-java:4.26.0) and jetified-protobuf-javalite-3.19.4 (com.google.protobuf:protobuf-javalite:3.19.4)
и мой градиент выглядит так:

Код: Выделить всё

plugins {
id 'kotlinx-serialization'
id "com.google.protobuf" version "0.8.17"
}

dependencies {
implementation "androidx.datastore:datastore:1.1.0"
implementation "com.google.protobuf:protobuf-javalite:3.21.11"
plugins {
id 'kotlinx-serialization'
id "com.google.protobuf" version "0.8.17"
}

dependencies {
implementation "androidx.datastore:datastore:1.1.0"
implementation "com.google.protobuf:protobuf-javalite:3.19.4"
//implementation "com.google.protobuf:protobuf-kotlin-lite:3.21.11"
}

protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.19.4"
}

// Generates the java Protobuf-lite code for the Protobufs in this project. See
// https://github.com/google/protobuf-gradle-plugin#customizing-protobuf-compilation
// for more information.
generateProtoTasks {
all().each { task ->
task.builtins {
java {
option 'lite'
}
// kotlin {
//     option 'lite'
// }
}
}
}
}
}

protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.21.11"
}

// Generates the java Protobuf-lite code for the Protobufs in this project. See
// https://github.com/google/protobuf-gradle-plugin#customizing-protobuf-compilation
// for more information.
generateProtoTasks {
all().each { task ->
task.builtins {
java {
option 'lite'
}
//kotlin {
//    option 'lite'
//}
}
}
}
}

Есть идеи, почему возникает проблема?
  • Это потому, что прототип сообщения имеет то же самое назовите этот класс данных ?
  • что-то еще ?
Thanls

Подробнее здесь: https://stackoverflow.com/questions/790 ... annotation
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»