Error de análisis de código(prefijo de espacio de nombres inesperado) después de actualizar la biblioteca de soporte de Android 23.2.0
android-support-library (5)
Actualicé a la biblioteca de soporte de Android 23.2.0 y agregué
vectorDrawables.useSupportLibrary = true
a mi build.gradle, de modo que tenga soporte dibujable vectorial para apis inferiores a 21. (Vea here para más detalles).
Yo también reemplacé
android:src="@drawable/ic_create_black_24dp"
con
app:srcCompat="@drawable/ic_create_black_24dp"
en cada vista de imagen que usa dibujables vectoriales.
La aplicación compila y funciona perfectamente bien, pero los informes de análisis de código:
Error: (56, 9) Se encontró un prefijo inesperado en el espacio de nombres "app" para la etiqueta
ImageView
¿Por qué es este el caso? ¿Por qué se está compilando aunque estoy recibiendo errores?
EDITAR: he añadido
xmlns:app="http://schemas.android.com/apk/res-auto"
en mi diseño raíz
Agregue xmlns:app="schemas.android.com/apk/res-auto"
como atributo a su ImageView
o a la etiqueta de Top-Level
como LinearLayout
, CoordinatorLayout
, RelativeLayout
... etc.
<ImageView android:layout_width="match_parent"
android:layout_height="match_parent"
app:srcCompat="@drawable/ic_create_black_24dp"
xmlns:app="http://schemas.android.com/apk/res-auto"/>
o en el diseño de los padres
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:app="http://schemas.android.com/apk/res-auto"/>
Cambie ImageView a android.support.v7.widget.AppCompatImageView en su XML
Estás viendo este error, porque ImageView original no tiene el atributo srcCompat. Este atributo solo lo utiliza AppCompatImageView, que se inyecta en lugar de ImageView que usted declaró. Este error es fácil de detectar cuando se usan infladores de vista sobrecargados. Lint realiza un análisis estático y no sabe qué hacks puedes hacer con xml desde el código.
Lint, la herramienta de análisis de código de Android, no parece saber todavía sobre los vectores dibujables de soporte. Puede ignorar el error de forma segura agregando tools:ignore="MissingPrefix"
a la etiqueta ImageView
.
Necesidad de agregar esto al diseño principal superior:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"