Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

357
Vistas
preferencias del almacén de datos de Android: el delegado de propiedad debe tener un método 'getValue (Context, KProperty<*>)'

Estoy escribiendo una aplicación de Android Jetpack Compose, necesito almacenar algunas configuraciones de forma permanente.

Decidí usar androidx.datastore:datastore-preferences:1.0.0 , la he agregado a mi classpath.

De acuerdo con la descripción de https://developer.android.com/topic/libraries/architecture/datastore , agregué esta línea de código a mi archivo kotline en el nivel superior:

val Context.prefsDataStore: DataStore por preferenciasDataStore(nombre = "configuración")

Pero me sale un error de compilación:

 e: ...SettingsViewModel.kt: (13, 50): Property delegate must have a 'getValue(Context, KProperty<*>)' method. None of the following functions is suitable: public abstract operator fun getValue(thisRef: Context, property: KProperty<*>): DataStore<Preferences> defined in kotlin.properties.ReadOnlyProperty

¿Cómo puedo usar las preferencias del almacén de datos?

Mi archivo build.gradle:

 plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-kapt' } apply plugin: 'dagger.hilt.android.plugin' apply plugin: 'kotlinx-serialization' android { compileSdk 31 defaultConfig { applicationId "hu.homedashboard.mobile" minSdk 22 targetSdk 31 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary true } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' useIR = true } buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion compose_version kotlinCompilerVersion "$kotlinVersion" } packagingOptions { resources { excludes += '/META-INF/{AL2.0,LGPL2.1}' } } } dependencies { implementation "androidx.activity:activity-compose:1.3.1" implementation "androidx.appcompat:appcompat:1.3.1" implementation "androidx.datastore:datastore-preferences:1.0.0" implementation "androidx.compose.material:material:$compose_version" implementation "androidx.compose.ui:ui-tooling-preview:$compose_version" implementation "androidx.compose.ui:ui:$compose_version" implementation "com.google.accompanist:accompanist-swiperefresh:0.20.3" implementation "androidx.core:core-ktx:1.6.0" implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.3.1" implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" implementation "androidx.navigation:navigation-compose:2.4.0-alpha10" implementation "com.google.android.material:material:1.4.0" implementation "com.google.dagger:hilt-android:2.40.1" implementation "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0" implementation "com.squareup.retrofit2:retrofit:2.9.0" implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.0" implementation "org.ocpsoft.prettytime:prettytime:5.0.2.Final" implementation 'androidx.hilt:hilt-navigation-compose:1.0.0-alpha03' kapt "com.google.dagger:hilt-compiler:2.38.1" kapt "com.google.dagger:dagger-android-processor:2.40.1" kapt "com.google.guava:guava:31.0.1-android" api "com.google.guava:guava:31.0.1-android" testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version" debugImplementation "androidx.compose.ui:ui-tooling:$compose_version" } kapt { correctErrorTypes true javacOptions { option("-Xmaxerrs", 500) } }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Recibí este error debido a una importación incorrecta:

 import java.util.prefs.Preferences

Así que arreglalo por

 import androidx.datastore.preferences.core.Preferences

o

 val Context.dataStore by preferencesDataStore(name = "settings")
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda