Domanda Errore di analisi del codice (prefisso spazio dei nomi imprevisto) dopo l'aggiornamento della libreria di supporto Android 23.2.0


Ho aggiornato alla libreria di supporto Android 23.2.0 e aggiunto

vectorDrawables.useSupportLibrary = true

al mio build.gradle, in modo da avere un supporto vettoriale disegnabile per apis inferiore a 21. (Vedi Qui 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 i drawable vettoriali.

L'app compila e funziona perfettamente, ma i report di analisi del codice:

Errore: (56, 9) Trovata inaspettata prefisso spazio dei nomi "app" per tag ImageView

Perché è così? Perché si sta compilando anche se sto ricevendo errori?

EDIT: ho aggiunto

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

nel mio layout di root.


16
2018-02-25 10:24


origine


risposte:


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 ImageView etichetta.


22
2018-02-25 13:13



Cambia ImageView in android.support.v7.widget.AppCompatImageView nel tuo XML


2
2018-04-05 00:43



Stai vedendo 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.


1
2018-02-25 13:23



È necessario aggiungerlo al layout principale:

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

0
2018-02-25 10:27



Inserisci xmlns:app="schemas.android.com/apk/res-auto" come attributo al tuo ImageView o al Top-Level Tag come LinearLayout, CoordinatorLayout, RelativeLayout.. eccetera

<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
2018-02-25 10:27