con la versión 6.2 de Gradle y la versión 4.0.1 de Android Studio, tengo el mensaje de obsolescencia para la Kotlin-android-extention . cualquier cuerpo tiene alguna idea de cómo solucionarlo.
Está en desuso Base en el documento de Google
Kotlin Android Extensions está en desuso, lo que significa que ya no se admite el uso de elementos sintéticos de Kotlin para vincular vistas.
para aquellos que se preguntan qué es el synthetic . Debería decir una forma simple de acceder a la identificación de la vista de la interfaz de usuario con kotlin, que fue posible al agregar 'kotlin-android-extensions' en Gradle .
'kotlin-parcelize' en lugar de 'kotlin-android-extensions' .Está en desuso ahora
Elimine 'Kotlin-android-extention' del complemento. (Usado para la forma sintética de kotlin de acceder a los elementos de la interfaz de usuario)
Agregue a continuación para usar la forma de view binding para acceder al elemento de la interfaz de usuario
android { ... buildFeatures { viewBinding true } } Si su aplicación contiene Parcelable , agregue 'kotlin-parcelize' en el complemento para usar una forma simple de crear parcelable simplemente agregando la anotación @Parcelize a la clase
Puede ver la guía de Google con respecto a esta actualización.
Las respuestas anteriores son correctas, pero cuando elimine 'kotlin-android-extensions' de su proyecto, no será posible acceder a las propiedades de vista usando la forma sintética de kotlin, por lo que debe migrar para usar el enlace de vista, siga esta guía de Google para migrar para ver enlace: enlace
Como ya se indicó, Kotlin Synthetics está obsoleto y debe reemplazarse por View Binding. En mi caso, quería introducir View Binding y migrar gradualmente de Kotlin Synthetics. Es posible tener ambos en un proyecto, solo debe recordar no actualizar la versión de Kotlin: tuve un error de compilación con 4.1.21 , por lo que necesitaba cambiar a 1.4.10 .
Recuerde también eliminar las importaciones de Kotlin Synthetics de una clase (generalmente actividad/fragmento), que se migró a través de View Binding.
Como "kotlin-android-extensions" está en desuso, ahora es mejor usar el enlace de vista.
Para esto, primero habilite el enlace de visualización en el archivo build.gradle escribiendo esta línea de códigos en el bloque de Android.
buildFeatures { viewBinding true }luego en el archivo de actividad para usar las funciones de enlace de vista
primero declare una variable global para enlazar como
private lateinit var binding:ActivityHomeBindingAquí ActivityHomeBinding es una clase generada automáticamente
luego escribe estos códigos en el método OnCreate()
binding = ActivityHomeBinding.inflate(layoutInflater) setContentView(binding.root)Recibí este error por una razón completamente diferente. Olvidé agregar la clase de aplicación personalizada donde agrego hiltannotation en el archivo de manifiesto:
<application android:name=".MyApplication"Google proporciona una nueva forma de enlace de vista en lugar de 'kotlin-android-extensions'. Agregar los siguientes complementos en build.gradle del módulo de la aplicación.
android { ... buildFeatures { viewBinding true } }En mi opinión, usar este complemento es aún mejor que los métodos introducidos, solo debemos prestar atención a las ID. Porque con el complemento Android Kotlin Extensions Gradle lanzado en 2017 llegó Kotlin Synthetics. Para cada archivo de diseño, Kotlin Synthetics crea una clase generada automáticamente que contiene su vista, tan simple como eso. Solo tiene que importar este complemento en su archivo Gradle, y ya está todo listo para consultar directamente las variables de referencia de la vista. Llama a findViewById internamente solo una vez y luego lo almacena en caché. Esto fue tan conveniente y tan divertido de usar, entonces, ¿por qué está en desuso? Analicémoslo. Pros Sin código repetitivo: solo configúrelo una vez en su archivo Gradle y estará listo para comenzar. Kotlin Synthetics generará automáticamente una clase lista para que la uses. Seguridad de tipo: todas las vistas se seleccionan de su archivo de diseño con el tipo conocido. Contras Seguridad nula parcial: generalmente es nula segura ya que todas sus vistas deben estar presentes en el archivo de diseño para que se genere. Pero, ¿qué sucede si tiene varios archivos de diseño basados en configuraciones donde algunas vistas están presentes en algunos archivos de diseño y faltan en algunos? Aquí debe verificar manualmente si hay nulo. Contamina el espacio de nombres: puede tener el mismo ID de vista en diferentes diseños, y puede importar accidentalmente una vista de algún otro diseño, que luego en el tiempo de ejecución generará NullPointerException. Solo Kotlin: Kotlin Synthetics solo se puede usar con Kotlin. No son compatibles con Java. Todavía hay proyectos que están escritos en Java y es posible que aún no se hayan migrado completamente a Kotlin y, por lo tanto, es posible que Kotlin Synthetics no sea una forma consistente de obtener ViewIds en su proyecto. Debido a estos problemas, Kotlin Synthetics ahora está obsoleto.
Ahora depende de usted decidir si aún desea usar este complemento como yo si desea corregir la advertencia obsoleta, debe evitar usar el método obsoleto.😊