解决appcompat中各种奇葩的错误

一、依赖/脱离appcompat

在新版本中Google跟新了一个依赖包,这个包包含了v4和v7的东西(v7是要依赖v4这个包的,所以用到v7时必须用一起的v4),只要你的编译版本compile with是4.0即以上,那么就会默认依赖这个appcompat包,反正你是没办法脱离它了。如果非要脱离他你可以建立一个编译版本是2.3,2.2之类的应用,这样就不会依赖这个包了。

根据实际经验,我们不可能再去建立一个2.x平台的应用,所以我们必须要好好和这个appcompat相处。于是就应该明白下面几点:

1.appcompat删掉后会出错,新建工程后它会自动生成

2.appcompat会影响你的R文件,你取消依赖的时候很可能丢失R文件。解决方式是将xml文件错误删除或者修改,然后才能重新获得R文件

3.appcompat有自己的属性,如果你定义的attribute属性和它重名了,那么就必须要更换名字。这就是android蛋疼的一点,应该注意。

4.appcompat有自己的编译版本,如果它的版本高,你的程序版本低,这样你在依赖的时候会出现找不到资源的问题。所以请保持一致或者比它编译版本高即可。当然你也可以修改它的编译版本。

二、supportV4包冲突

程序报错说应用中的v4和appcompat中的v4不一致。这个很常见,因为appcompat中经常更新,所以很容易出现不一致。解决思路是解除依赖关系,删除自己的v4,然后进入构建路径->库->删除私有的库,最后重新添加依赖即可。当然关键点是尽量不要让xml文件中出现错误,这样很难重新生成R文件的。

三、appcompat中资源错误

出现这个错误基本上是跟新所致,因为更新了新的资源文件,但你的appcompat编译版本还是旧的,在appcompat属性中提高它的编译版本然后清理下即可解决此问题。但随之而来的是依赖它的工程也会出现这样的问题,也必须提高编译版本。当然你也可以保留之前没升级过的appcompat,具体看情况而定吧。

原文地址:https://www.cnblogs.com/tianzhijiexian/p/4066563.html