醒来明月,醉时清风。 – 元好问
看下令人恶心的报错信息 Process ‘command ‘D:\sdk\build-tools\25.0.0\aapt.exe’’ finished with non-zero exit value 1
又是一个神奇的bug,我总是如此的幸运,以至于幸运女神已经对我爱答不理。
又是搜罗了一堆此报错的原因,比如资源文件引用错误,资源命名格式错误,Build Tools Version 版本未选择,版本错误等等,全部一一检查试过,依然没解决问题。 我触发这个问题的环境:
1,AS版本 3.2.1.
2,导入他人的项目。
3,是一个ionic混合开发项目,android部分。
原代码是这样的,这是没问题的:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#aa363B41"
android:paddingRight="12dp">
<!--B 图标-->
<ImageView
android:id="@+id/iv_b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@mipmap/camera"/>
<!--A 图标-->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginRight="16dp"
android:layout_toLeftOf="@id/iv_b"
android:src="@mipmap/flash_off"/>
</RelativeLayout>
简单说下,一个 RelativeLayout 中放了两个图标,B 放在父布局的最右侧,A 放在B 的左侧,预览的视觉效果就是横向排列的 图标A 图标B,我是一个有点强迫症的选手,既然是 图标A 图标B 这样的,代码也要按这个顺序啊,于是顺手换了下位置,改成了这样的
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#aa363B41"
android:paddingRight="12dp">
<!--A 图标-->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginRight="16dp"
android:layout_toLeftOf="@id/iv_b"
android:src="@mipmap/flash_off"/>
<!--B 图标-->
<ImageView
android:id="@+id/iv_b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@mipmap/camera"/>
</RelativeLayout>
这你妹的不可能有问题啊,继续加了其他功能布局,一运行,呵呵,出于对自己年龄的考虑,可能老了,犯了点低级错误吧,一点点看,没问题,一点点屏蔽写了的东西,调试,最后就剩这点改动了,还是报错,我勒个去,这点自信我还是有的,这不可能有问题啊,实在没招了,重新svn下载,另起文件夹运行,没问题!那就这点不一样了,于是我抱着试一试的完全不相信的态度换了回去,一运行,挖槽,成了!这这这。。。怎么可能,违背我多年的信仰啊!赶紧新建了个android项目,把相同的报错的代码导进去,运行,没问题!这就尴尬了,这个错只在这个项目里出现,我已有的知识体系已经无法说明这个问题了,问了一个哥们,哥们说可能是编译方式、过程啊啥的问题,并且说你把报错的那个android:layout_toLeftOf=”@id/iv_b” 中@id 改为@+id 试试,我试试吧,确实就不报错了,哎,可怜了我整个上午的时光。
解决方案:
一,把位置改回去。
二,把 android:layout_toLeftOf=”@id/iv_b” 改为 android:layout_toLeftOf=”@+id/iv_b” 。
如果你按这样的方式解决了的话,呵呵,你是幸运的。