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