Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Code Analysis Error (Unexpected namespace prefix) after upgrading Android Support Library 23.2.0

I upgraded to Android Support Library 23.2.0 and added

vectorDrawables.useSupportLibrary = true

to my build.gradle, so that I have vector drawable support for apis lower than 21. (See here for details).

I also replaced

android:src="@drawable/ic_create_black_24dp"

with

app:srcCompat="@drawable/ic_create_black_24dp"

in every Imageview that uses vector drawables.

The app compiles and works perfectly fine, but code analysis reports:

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

Why is this the case? Why is it compiling although I am getting errors?

EDIT: I have added

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

in my root layout.

like image 663
Lukas Lechner Avatar asked Feb 25 '16 10:02

Lukas Lechner


3 Answers

Lint, Android's code analysis tool, doesn't seem to know about support vector drawables, yet. You can safely ignore the error by adding tools:ignore="MissingPrefix" to the ImageView tag.

like image 128
Kirill Rakhman Avatar answered Nov 20 '22 05:11

Kirill Rakhman


Change ImageView to android.support.v7.widget.AppCompatImageView in your XML

like image 2
Student222 Avatar answered Nov 20 '22 05:11

Student222


You're seeing this error, because original ImageView doesn't have srcCompat attribute. This attribute is used only by AppCompatImageView, which is injected instead of ImageView you declared. This error is easy to spot when using overloaded view inflaters. Lint performs static analysis and doesn't know about hacks you can do with xml from code.

like image 1
Zielony Avatar answered Nov 20 '22 05:11

Zielony