开发app的时候,可能在同一个工程下,同一个app存在的不同版本,在这些不同版本之间切换时编译可能出现找不到资源符号---------找不到符号,的错误。
造成这种错误的原因主要有四个:
1.代码的ID有错;
2.资源文件ID 有错;
3.xml未编译
前面两个容易检查出来,只需对比即可,但是后面一个确实很难检查的出,只有你确定前两个原因排除之后,你就可以锁定。原因就是资源文件xml没有编译到,想要xml资源编译非常简单,你随便添加一个空行。
那么造成这种问题的原因是什么呢?
那就说说我的情况吧:我在 不同版本切换时,通常会编译一个版本的app代码,后又编译另一个版本的app,系统编译的时候会自动生成一个R文件,该文件的目录就在out/target/common/R/com/android/xxx/里面,等到第二次编译这个app代码的时候,由于我的xml文件未改动,编译器不会自动添加资源id到R文件里面,所以就会出现上面找不到资源id的情况。
同时说明编译器在编译的时候会检查每个文件,是否在编译后被修改过,如果检查编译后没有修改,则不会去编译这个文件。