Android Proto не генерирует классы данныхAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android Proto не генерирует классы данных

Сообщение Anonymous »

знала
У меня есть этот класс данных usersettingsmodel , к которому я перенес, из -за необходимости сохранять некоторые приложения: map . Это для приложения, которое считывает уведомления, определенные пользователем из приложений, определенных пользователем.UserSettingsModel
package com.mikewarren.speakify.data

data class UserSettingsModel(
val useDarkTheme: Boolean,
val selectedTTSVoice: String,
val appSettings: Map,
)

< /code>
AppSettingsModel
package com.mikewarren.speakify.data

data class AppSettingsModel(
val appName: String,
val announcerVoice: String?, // Nullable if no voice is selected
val notificationSources: List = emptyList()
)

ОК, в чем проблема?protobuf
syntax = "proto3";

option java_package = "com.mikewarren.speakify.data";
option java_multiple_files = true;

message AppSettingsModel {
string app_name = 1;
string announcer_voice = 2;
repeated string notification_sources = 3;
}

message UserSettingsModel {
bool use_dark_theme = 1;
string selected_tts_voice = 2;
map app_settings = 3;
}
< /code>
построил проект, попытался использовать этот материал, но немедленно столкнулся с некоторой путаницей. После того, как он спросил ИИ, выясняется, что Proto генерирует свои собственные классы модели данных, отделенные от ваших собственных методов . Поэтому я изменил свое приложение/src/main/proto/app_settings.proto :
protobuf
syntax = "proto3";

option java_package = "com.mikewarren.speakify.data";
option java_multiple_files = true;

message AppSettings {
string app_name = 1;
string announcer_voice = 2;
repeated string notification_sources = 3;
}

message UserSettings {
bool use_dark_theme = 4;
string selected_tts_voice = 5;
map app_settings = 6;
}

Попытался восстановить, но все еще не увидел каких -либо сгенерированных пользователей или appsettings Classes!plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)

id "kotlin-kapt"
id 'com.google.dagger.hilt.android' // Add this line
}

final int androidSdkVersion = 35

android {
namespace 'com.mikewarren.speakify'
compileSdk androidSdkVersion

defaultConfig {
applicationId "com.mikewarren.speakify"
minSdk 24
targetSdk androidSdkVersion
versionCode 1
versionName "1.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = '11'
}
buildFeatures {
compose true
}
}

dependencies {

implementation("com.google.dagger:hilt-android:2.51.1")
implementation libs.androidx.media3.common.ktx
kapt("com.google.dagger:hilt-compiler:2.51.1")
// If using Hilt with Compose Navigation:
implementation("androidx.hilt:hilt-navigation-compose:1.2.0")
implementation("com.google.protobuf:protobuf-javalite:3.18.0") // or latest version
// Add this line:
implementation("com.google.protobuf:protoc:3.17.2") // Use the same version as in your protobuf extension
implementation("androidx.datastore:datastore:1.1.4")
implementation libs.androidx.core.ktx
implementation libs.androidx.lifecycle.runtime.ktx
implementation libs.androidx.activity.compose
implementation platform(libs.androidx.compose.bom)
implementation libs.androidx.ui
implementation libs.androidx.ui.graphics
implementation libs.androidx.ui.tooling.preview
implementation libs.androidx.material3
implementation libs.androidx.navigation.runtime.ktx
implementation libs.androidx.navigation.compose
implementation libs.androidx.espresso.core

// https://mvnrepository.com/artifact/andr ... references
implementation "androidx.datastore:datastore-preferences:1.1.4"

implementation libs.androidx.datastore.core.android
implementation libs.androidx.datastore.preferences.core.jvm
testImplementation libs.junit
androidTestImplementation libs.androidx.junit
androidTestImplementation libs.androidx.espresso.core
androidTestImplementation platform(libs.androidx.compose.bom)
androidTestImplementation libs.androidx.ui.test.junit4
debugImplementation libs.androidx.ui.tooling
debugImplementation libs.androidx.ui.test.manifest

runtimeOnly libs.androidx.lifecycle

}
< /code>
и на уровне корневого уровня, для хорошей меры: < /p>
buildscript {
dependencies {
classpath "com.android.tools.build:gradle:8.9.1"
classpath "com.google.dagger:hilt-android-gradle-plugin:2.51.1" // Add this line with the correct version
classpath 'com.google.protobuf:protobuf-javalite:4.30.2'
}
}

// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.compose) apply false
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... ta-classes
Ответить

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

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

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

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

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