今天做项目的时候导入一个Moudle到项目中来,但是我compile project(path:':xxxx') 进来的时候却报了个错误:
Error:Execution failed for task ':app:processDebugResources'.
> com.android.ide.common.process.ProcessException: Failed to execute aaptt.
这个错误我遇到几次了,但是每次弄好后都没做笔记,这次又遇到了,然后一如既往的去网上查资料,我觉得总这样也不是办法,所以以后我会把经常遇见的错误在这里做备份,免的以后又去网上扒。
好了,总结一下会出现这个错误的几种情况:
1、引入的三方包存在相同的label icon 等名字

假如moudle中的label或icon和app内的清单文件又相同的,就会出现这个错误(我没试)。解决办法就是:
在app内的AndroidManifest.xml的application标签下添加tools:replace="android:icon, android:theme"(多个属性用,隔开,并且记住在manifest根标签上加入xmlns:tools="http://schemas.android.com/tools"

2、sdk版本号不一致
如果moudle和app内的sdk版本号不一致也会出现这个错误,

这个两个地方注意修改成一致。
3、资源文件错误
这个错误就因人而异了,一般都是重名了出现错误,所以我们注意他定位的位置或者提示来解决,

这里我出现的错误是:Error:(232) Attribute "interpolator" has already been defined 说是这个interpolator已经被创建,我们根据他给出的报错位置定位到如下图的位置,这个是debug编译后的valus文件,我们根据<attr />标签可指导出错的位置是在app/res/values/attrs文件内

在这个文件内ctrl+f搜索interpolater,定位到这行后,把这行去掉即可解决问题。

这就是以上三种情况,基本上出现这种错位就属于这三种情况内。
网友评论