最近要修改packages/apps目录下的项目,需要加些功能上去。在添加一些资源文件后,出现莫名的错误:xxx ...找不到文件。

  造成这种错误的原因主要有四个:

  1.代码;

  2.没有资源文件;

  3.没有添加R文件;

  4.xml未编译

    前面三个比较可以检查出来,但是后面一个确实很难检查的出,只有你确定前三个原因排除之后,你就可以锁定第四个,而且每次都成功。想要xml资源编译非常简单,你随便添加一个空行,那么你的这个xml文件就会在编译的时候自动编译,否则它是不会编译的。

  那么造成这种问题的原因是什么呢?

  那就说说我的情况吧:我在review代码的时候,通常会把别人的代码先编译(注意这个时候别人的代码跟我的代码是不一样的,也就是说我使用的在别人的项目代码里面没有),然后系统这个时候会自动声称一个R文件,该文件的目录就在out/target/common/R/com/android/xxx/里面,这个时候如果我在编译我的代码,由于我的xml文件未改动,编译的时候不会自动添加资源id到R文件里面,所以就会出现上面找不到资源id的情况。