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

1.2K
Vistas
Kotlin Android: el delegado de propiedad debe tener un método 'getValue (DashViewModel, KProperty*>)'

Estoy tratando de seguir la guía oficial de Android para ViewModels en Kotlin. Literalmente copié y pegué el ejemplo oficial más fácil, pero la sintaxis parece ser ilegal.

Esta sección causa el problema:

 private val users: MutableLiveData<List<User>> by lazy { MutableLiveData().also { loadUsers() } }

La vista previa me da este error:

 Property delegate must have a 'getValue(DashViewModel, KProperty*>)' method. None of the following functions is suitable.

Y si quiero iniciar la aplicación me sale este error:

 Type inference failed: Not enough information to infer parameter T in constructor MutableLiveData<T : Any!>() Please specify it explicitly.

No entiendo esos dos errores y otras preguntas con el mismo error parecen haber sido causadas por algo diferente. Supongo que MutableLiveData().also causa el problema, pero no sé por qué. Esto es bastante extraño considerando que este es un ejemplo oficial.

over 4 years ago · Hanz Gallego
1 Respuestas
Responde la pregunta

0

No parece que haya declarado una clase User .

El segundo problema es otro error de documentación y debe proporcionar el tipo en la llamada al constructor MutableLiveData .

Entonces, esto funciona:

 package com.commonsware.myapplication import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel class User class MainViewModel : ViewModel() { private val users: MutableLiveData<List<User>> by lazy { MutableLiveData<List<User>>().also { loadUsers() } } fun getUsers(): LiveData<List<User>> { return users } private fun loadUsers() { // Do an asynchronous operation to fetch users. } }

Esto es bastante extraño considerando que este es un ejemplo oficial.

En general, considéralos una ilustración de una técnica, no necesariamente algo que copiarías y pegarías en un proyecto.

over 4 years ago · Hanz Gallego 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