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

一笑奈何 提交于 2019-12-06 19:03:08

问题


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.


回答1:


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.




回答2:


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




回答3:


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.




回答4:


Need to add this to top parent layout :

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



回答5:


Add xmlns:app="schemas.android.com/apk/res-auto" as attribute either to your ImageView or to the Top-Level Tag like 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"/>

or in parent layout

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


来源:https://stackoverflow.com/questions/35624562/code-analysis-error-unexpected-namespace-prefix-after-upgrading-android-suppor

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!