Код: Выделить всё
incompatible types: NonExistentClass cannot be converted to Annotation
Код: Выделить всё
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;
}
Я пытался переименовать их с помощью 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'
//}
}
}
}
}
- Это потому, что прототип сообщения имеет то же самое назовите этот класс данных ?
- что-то еще ?
Подробнее здесь: https://stackoverflow.com/questions/790 ... annotation