android android-support-library

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"