Error de código de análisis (prefijo de espacio de nombres inesperado) después de actualizar Android Support Library 23.2.0
He actualizado a Android Support Library 23.2.0 y agregado
vectorDrawables.useSupportLibrary = true
a mi build.gradle, por lo que tengo soporte vectorial desplegable para apis inferior a 21. (Vea aquí para más detalles).
- No se encuentra la biblioteca de soporte de preferencias v7 en Eclipse ADT
- No se pueden utilizar Fragmentos con el paquete de compatibilidad con Android
- Vista de búsqueda en LinearLayout usando android.support.v7.widget.SearchView
- Barra de herramientas de soporte de Android: Cambiar el tamaño no realineará los elementos del menú
- No se pudo resolver: com.android.support:customtabs:
También reemplazé
android:src="@drawable/ic_create_black_24dp"
con
app:srcCompat="@drawable/ic_create_black_24dp"
en todas las vistas de imagen que utilice dibujos vectoriales.
La aplicación compila y funciona perfectamente bien, pero los informes de análisis de código:
Error: (56, 9) Prefijo de espacio de nombres inesperado "app" encontrado para la etiqueta
ImageView
¿Por qué es este el caso? ¿Por qué está compilando aunque estoy recibiendo errores?
EDIT: He añadido
xmlns:app="http://schemas.android.com/apk/res-auto"
en mi diseño de raíz.
- Barra de herramientas: botón de menú de desbordamiento siempre mostrando
- DexIndexOverflowException después de actualizar a la última appcompat y la biblioteca de soporte
- Biblioteca de soporte técnico de Android appcompat_v7 v21.0.1 da error
- Android SeekBar no puede ser de ancho completo incluso establecer padding 0 en AppCompat 23.1.0
- ¿Necesito usar la biblioteca de soporte de Android?
- Android ClassNotFoundException for Support v7 TestActivity
- ViewPager dentro de Fragmento pierde su contenido cuando se vuelve a mostrar el fragmento
- Android.app Fragments vs. android.support.v4.app usando ViewPager?
Lint, la herramienta de análisis de código de Android, no parece saber sobre el soporte de dibujos vectoriales, todavía. Puede ignorar el error con seguridad añadiendo tools:ignore="MissingPrefix"
a la etiqueta ImageView
.
Está viendo este error, porque ImageView original no tiene el atributo srcCompat. Este atributo es utilizado sólo por AppCompatImageView, que se inyecta en lugar de ImageView que declaró. Este error es fácil de detectar cuando se utilizan sobrecargados. Lint realiza el análisis estático y no sabe acerca de hacks que puede hacer con xml de código.
Cambiar ImageView a android.support.v7.widget.AppCompatImageView en su XML
Necesidad de agregar esto a la disposición superior del padre:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
Agregue xmlns:app="schemas.android.com/apk/res-auto"
como atributo a su ImageView
oa 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"/>
- Detener evento táctil de ser interceptado por ViewPager si hay evento táctil en la vista web
- FirebaseUI autenticación con Facebook no funciona