Android5.0以下drawable tag vector错误的解决办法

高斋晓开卷,独共圣人语。这篇文章主要讲述Android5.0以下drawable tag vector错误的解决办法相关的知识,希望能为你提供帮助。
android5.0以下drawable tag vector错误的解决办法在Androi 5.0以下的设备可能会报这样的错误:
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
解决思路:1、首先检查兼容性环境配置是否正确,判断是否是环境配置的问题导致出现以上问题的,如果是,请配置好环境,如果不是
请看步骤2
兼容性环境的配置:
(1)首先在使用时,我们需要添加依赖:

compile ‘com.android.support:support-vector-drawable:26.1.0‘compile ‘com.android.support:appcompat-v7:26.1.0‘

(2)打开该模块下的build.gradle文件:
  • 如果当前使用的gradle版本为2.0以上,在android节点下的defaultConfig节点下加入一行代码
vectorDrawables.useSupportLibrary = true

  • 如果使用的gradle版本为2.0以下,1.5以上,则需要在android节点下的defaultConfig节点下加入如下一行代码:
generatedDensities = []

并在android节点下,defaultConfig节点后面加入
aaptOptions { additionalParameters "--no-version-vectors" }

(3) 修改布局文件app:srcCompat="@drawable/ic_egg05_got"
(4) 在Activity的oncreate中加入如下代码即可: AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
2、判断不是兼容性环境配置的问题,检查使用的控件
(1) ImageView,如果加载vector drawable资源的Activity是继承自AppCompatActivity,xml使用ImageView,否则xml中使用AppCompatImageView
,同时android:src="http://img.readke.com/220512/0Q4302435-0.jpg"; 由app:srcCompat=" "; 替代
【Android5.0以下drawable tag vector错误的解决办法】(2)TextView,AppCompatTextView是没有对CompoundDrawable进行适配的,如果直接使用android:drawableRight=" "等属性加载矢量图,Android5.0以下的
机型可能会出现崩溃,我们需要重写TextView以及它的相关属性。可以参考https://github.com/woxingxiao/VectorCompatTextView重写TextView




    推荐阅读