2016-02-25 3 views
16

Upgrade I Android Support Library 23.2.0 aktualisiert und hinzugefügtCode-Analyse-Error (Unexpected Namespacepräfix) nach Android Support Library 23.2.0

vectorDrawables.useSupportLibrary = true 

meiner build.gradle, so dass ich Vektor ziehbar Unterstützung haben für Apis niedriger als 21. (Siehe here für Details).

I ersetzt auch

android:src="@drawable/ic_create_black_24dp" 

mit

app:srcCompat="@drawable/ic_create_black_24dp" 

in jeder Bildansicht, den Vektor Drawables verwendet.

Die App erstellt und funktioniert einwandfrei in Ordnung, aber Code-Analyse Berichte:

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

Warum ist dies der Fall? Warum kompiliere ich, obwohl ich Fehler bekomme?

EDIT: Ich habe

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

in meinem Stamm Layout hinzugefügt.

Antwort

22

Lint, das Code-Analyse-Tool von Android, scheint noch nichts über Support-Vektor-Drawables zu wissen. Sie können den Fehler ignorieren, indem Sie tools:ignore="MissingPrefix" zum ImageView Tag hinzufügen.

+1

Fügen Sie 'tools: src =" @ drawable/ic_create_black_24dp "' hinzu, um das Zeichen im Layout als Vorschau anzuzeigen – osrl

+0

Es funktioniert für mich. Bitte erwähnen Sie diese Zeile auch in Ihrer Antwort xmlns: tools = "http://schemas.android.com/tools" – VVB

0

Notwendigkeit, diese nach oben übergeordnetem Layout hinzuzufügen:

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

xmlns:app="schemas.android.com/apk/res-auto" als Attribut hinzufügen entweder auf Ihre ImageView oder zum Top-Level Tag wie 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"/> 

oder im übergeordneten Layout

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

Sync gradle versuchen zu laufen. –

1

Dieser Fehler tritt auf, weil das ursprüngliche ImageView nicht über das srcCompat-Attribut verfügt. Dieses Attribut wird nur von AppCompatImageView verwendet, das anstelle von ImageView, das Sie deklariert haben, eingefügt wird. Dieser Fehler ist leicht zu erkennen, wenn überladene View-Inflater verwendet werden. Lint führt statische Analysen durch und weiß nichts über Hacks, die Sie mit xml aus Code machen können.

2

ändern Image zu android.support.v7.widget.AppCompatImageView in Ihrem XML-

+0

Kudos! Dies ist ein anständig sauberer Workaround für jetzt! – swooby

Verwandte Themen