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=" ";由app:srcCompat=" ";替代

(2)TextView,AppCompatTextView是没有对CompoundDrawable进行适配的,如果直接使用android:drawableRight=" "等属性加载矢量图,Android5.0以下的

机型可能会出现崩溃,我们需要重写TextView以及它的相关属性。可以参考https://github.com/woxingxiao/VectorCompatTextView重写TextView

原文地址:https://www.cnblogs.com/chunmei123/p/10130476.html

时间: 2024-10-29 23:19:59

Android5.0以下drawable tag vector错误的解决办法的相关文章

IIS7.5中调试.Net 4.0网站出现无厘头500错误的解决办法 (转)

刚刚 部署了ii7的dll的有x86写的,就会出现以下这样的问题 iis 7 x86,Could not load file or assembly 'Name' or one of its dependencies. An attempt was made to load a program with an incorrect format. 解决这样的,只要设置一下iis兼容x86程序就可以了,具体步骤: 1.开始-> 运行 2. 3. 高级设置, Enable 32 - Bit Appli

有关百度一键分享链接到微信朋友圈无法打开网页,报404错误的解决办法,from=timeline&isappinstalled=0,和伪静态规则有关

最近有好友反映用百度一键分享,分享网页链接到微信朋友圈的时候,发现链接无法打开,提示无法找到该页404错误,同样分享到QQ.微博等链接 能正常访问,这么明显的错误,百度和腾讯应该不会忽略吧. 接报后,我专门分析了一遍他公司的网站,确实是微信朋友圈无法分享网站链接.但是通过微信扫一扫能正常浏览网页,点击分享到朋友圈后,在  从朋友圈去访问的时候,提示无法找到该页,报404错误. 经反复检测,排除了分享代码的问题,和服务器配置问题.我开始怀疑伪静态规则,开启URL重写造成的,我关掉了伪静态,让网页形

关于导入新项目的问题——项目文件有错,但是子文件没任何错误的解决办法

在我们学习和工作的时候,有时候将别人的 Project 导入到自己的开发工具时,总是会有莫名其妙的奇葩错误, 就是明明项目里面的代码和类都没错,但是项目文件夹上有一个红色的叉叉,今天我就给大家来说说关于这类错 误的解决办法,我就故意导致项目报这个异常,一步一步演示给大伙看,希望大家在以后遇到这类问题可以迎刃 而解 错误示例图: 我们可以看到上面截图,除了项目文件,其他都没任何错误,可是在console没有异常告诉我们,我们该怎么解 决呢?其实很简单,下面看我演示: 打开红色方框这个选项,里面就是

GDI+中发生一般性错误的解决办法(转载)

今天在开发.net引用程序中,需要System.Drawing.Image.Save 创建图片,debug的时候程序一切正常,可是发布到IIS后缺提示出现"GDI+中发生一般性错误"的异常.于是开始"摆渡",并寻找到了解决办法:赋予 NETWORK SERVICE 帐户以写权限. 以下为晚上寻找到的资料: 在开发.NET应用中,使用 System.Drawing.Image.Save 方法而导致"GDI+ 中发生一般性错误"的发生,通常有以下三种

GCC编译uboot出现(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'错误的解决办法

/opt/arm-2010.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/armv4t/libgcc.a(_bswapsi2.o):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0' make: *** [u-boot] Error 1 一旦编译uboot出现上述错误,请不要慌张!解决办法官网已经给出,主要解决办法如下: vim 打开./lib_arm/eabi_com

STM8S编译时内存溢出错误的解决办法

? 导致COSMIC报告"segment .ubsct overflow"错误的根本原因是内存溢出, 相关原因分析如下: ? 1.变量存储空间结构 ? STM8S105系列CPU的RAM地址范围为0~0x7FF的2K空间,其中默认将高512字节分配给堆栈,剩下0~0x5FF字节为变量存储空间 .在0~0x5FF的空间范围内,低256字节被定义为Zero page,其中包括.bsct,.ubsct,.bit,.share ? 可见, 当segment .ubsct overflow错误出

VS2010出现FileTracker : error FTK1011编译错误的解决办法

VS2010出现FileTracker : error FTK1011不知道是不是vs2010的一个bug,反正有人提交了. FileTracker : error FTK1011编译错误的解决办法有三个,推荐使用第二个 方法一:把目标框架改为Framewotk=4.0方法二:新增环境变量TRACKFILEACCESS=false:操作步骤:右击"我的电脑"(或"计算机")-->"高级"-->"环境变量"-->

安装Oracle客户端时,检查系统要求时状态为错误的解决办法

这是我自己安装oracle11g至win7的错误记录: 正在检查操作系统要求...要求的结果: 5.0,5.1,5.2,6.0 之一实际结果: 6.1 我换了 10g,11g从32bit到64bit折腾了好多次,最后终于找到了解决的方法-- 看到那一个错误了么?实际上是因为配置文件引起的 找到 refhost.xml 文件(位置:database/stage/prereq/db,打开 refhost.xml 配置文件并找到 <CERTIFIED_SYSTEMS> 节点,接着在节点后面修改6.0

关于C#联接数据库是出现&#39;未在本地计算机上注册&#39;错误的解决办法

今天在用c#连接access数据库处理数据的时候遇到了一个诡异的问题, 未在本地计算机上注册"Microsoft.ACE.OLEDB.12.0"提供程序 我们的部分代码如下: string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="; string str = System.Environment.CurrentDirectory; str += "\\Database.accdb&q