2016-02-25 8 views
16

ho aggiornato a Android libreria di supporto 23.2.0 e ha aggiuntoanalisi del codice di errore (namespace prefix Unexpected) dopo l'aggiornamento Android di sostegno Biblioteca 23.2.0

vectorDrawables.useSupportLibrary = true 

al mio build.gradle, in modo da avere il supporto vettore drawable per apis inferiore a 21. (Vedere here per dettagli).

Ho anche sostituito

android:src="@drawable/ic_create_black_24dp" 

con

app:srcCompat="@drawable/ic_create_black_24dp" 

in ogni IMAGEVIEW che utilizza drawable vettoriali.

L'applicazione compila e funziona perfettamente bene, ma i rapporti di analisi del codice:

Error:(56, 9) Unexpected namespace prefix "app" found for tag ImageView

Perché è questo il caso? Perché si sta compilando anche se sto ricevendo errori?

EDIT: Ho aggiunto

xmlns:app="http://schemas.android.com/apk/res-auto" 

nel mio layout root.

risposta

22

Lint, lo strumento di analisi del codice di Android, non sembra ancora conoscere i supporti per il vettore di supporto. Puoi tranquillamente ignorare l'errore aggiungendo tools:ignore="MissingPrefix" al tag ImageView.

+1

Aggiungete anche 'tools: src =" @ drawable/ic_create_black_24dp "' per visualizzare l'anteprima del drawable nel layout – osrl

+0

Funziona per me. Si prega di citare anche questa riga nella risposta xmlns: tools = "http://schemas.android.com/tools" – VVB

0

bisogno di aggiungere questo al top layout di genitore:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:app="http://schemas.android.com/apk/res-auto" 
0

Aggiungi xmlns:app="schemas.android.com/apk/res-auto" come attributo sia al vostro ImageView o al Top-Level Tag come LinearLayout, CoordinatorLayout, RelativeLayout .. ecc

<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 nel layout principale

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      xmlns:app="http://schemas.android.com/apk/res-auto"/> 
+0

sincronizzazione prova Gradle per l'esecuzione. –

1

Si vede questo errore, perché ImageView originale non ha attributo srcCompat. Questo attributo viene utilizzato solo da AppCompatImageView, che viene iniettato al posto di ImageView dichiarato. Questo errore è facile da individuare quando si utilizzano gli inflator di visualizzazione sovraccaricati. Lint esegue analisi statiche e non conosce gli hack che puoi fare con xml dal codice.

2

Change ImageView al android.support.v7.widget.AppCompatImageView in XML

+0

Complimenti! Questa è una soluzione decentemente pulita per ora! – swooby

Problemi correlati