深入探讨R.java(连载中...)
怎么说呢,有些问题是可遇不可求的,R.java问题也是我们在Android开发中经常遇到的,到目前为止,我总结了几处(以后可能还会遇到其他的问题) 1、首先要知道R.java文件是干什么的,R.java文件程序在编译过程由aapt(android aaset packaging tool)自动生成,不要修改,就是程序提示出错了,也不要手动修改R.java文件
2、为何不能引用res/下已存在的图片或其他类似文件?
比如说res/资源文件下有图片,这个时候去查看R.java文件,发现并没有生成这个图片的资源ID,这是因为图片是有,但是我们还没有在.xml或是程序中引用,程序编译时没有引用它们又怎能生成相应的资源ID;第二种情况可能是我们的包导错了,android有默认的系统R.java 即import android.R 这时我们应该导入我们自己写好的比如import android.com.R;
3、为何不能生成R.java文件或是clean项目时R.java文件不见了?
不能生成R.java文件,说明工程中有错误,这时我们可以先把错的注释掉,按Ctrl+S保存重新编译下即可;
clean工程时不见了R.java文件最常见,我们首先应该考虑是不是xml写错了,如果项目比较多,我们也不能把错的地方一一注释掉,太麻烦而且浪费时间,这个时候,千万不要着急,重新clean项目,看console下的“报红”,找到错误的xml文件一一解决即可.
4、android项目前无故多了个大大的红色叹号?
这个情况一般是刚启动eclipse后出现,这个我认为是eclipse做得比较好的地方(起码用着比vs2010爽,而且做得更专业),这个问题也好办,右键我们的项目找到bulidPath-->Configure Build Path,重新建立我们的项目,找到libraries--看下面的包有没有重复的或是有明显标记的比如说叉叉等,然后选中"Remove“掉即可
5、电脑太卡强行关闭正在运行的elipse(我关闭时elipse正在编译,我直接结束了进程),再次启动eclipse,你傻眼了?
如果你eclipse中项目较多,现在的情况应该是项目无一例外全是红叉叉,令人胆寒,随便打开一项目,里面全报错,这错误就明显了,有可能少包什么的,因为程序正在编译,突然强行关闭,少包是很有可能的,这个将鼠标放在有报红的程序代码中,会弹出系统提示,下面有个Fix Project setup....什么的提示,我们点击,错误消失(这种情况是不太严重的);还有一种情况,clean项目不成功,下面报红,编译报错,甚至不能导包,具体信息我忘了,网上说换一个wokspace,我试了下,行不通,clean,编译,导包还是会报错,这时我们可以通过import-->先择General-->Existing....导入我们的项目,然后再一一排错即可解决(昨天我就差点就重装eclipse),这也是我觉得eclipse比vs做得好的又一原因(虽说eclipse版本等有诸多问题)
最后,鄙人暂时遇到了这些,望对大家有所帮助!