之所以发布这篇文章,是因为实在是忍不了IDEA这个开发工具了,但是公司要求用这个来做android开发,无奈。
本人遇到过很多次在替换新的logo之后,接着运行,发现logo一直没换,还是以前的,无论是怎么重新导入项目,重启环境都没用。虽然知道这个是bug,但是一直没找到解决方法,后来发现编译的日志里(Messages窗口)会打印资源的编译过程,发现res目录下的东西会copy到一个临时目录(C:\Users\用户名\.IdeaIC12\system\compile-server,我的是Android Resource Caching: [CSII] To destination dir: C:\Users\xuxinyan\.IdeaIC12\system\compile-server\csii_af5a7d53\android\res_cache\CSII)下面,找到Message里打印的当前项目copy到的文件夹(csii_af5a7d53),并删除,然后重新编译,此时IDEA会重新利用最新的资源生成一个临时文件夹,logo的问题就解决了。其它资源如果也出现这种问题,也可以利用这个方法解决,原理一样的。
附:IDEA out目录问题,因为上面的问题删掉了out目录下的com文件夹,也就是源码字节码所在的文件夹,导致再次编译时报错,找不到类,后来重新指定了一个out目录,IDEA会自己重新生成,这个问题也解决了。由此可得:IDEA进行编译android项目的时候字节码和资源是分离的,字节码存放在out目录,而资源则放在C:\Users\用户名\.IdeaIC12\system\compile-server目录。