знала
У меня есть этот класс данных 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
Android Proto не генерирует классы данных ⇐ Android
Форум для тех, кто программирует под Android
1744998610
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>
построил проект, попытался использовать этот материал, но немедленно столкнулся с некоторой путаницей. После того, как он спросил ИИ, выясняется, что [b] Proto генерирует свои собственные классы модели данных, отделенные от ваших собственных методов [/b]. Поэтому я изменил свое приложение/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/androidx.datastore/datastore-preferences
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
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79581506/android-proto-not-generating-data-classes[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия