首页 > 代码库 > Android见招拆招八:多次遇到的R.java编译问题
Android见招拆招八:多次遇到的R.java编译问题
问题描述
R cannot be resolved to a variable
问题原因
android:id="@+id/15"
定义id时命名不规范导致了编译错误,不能使用数字,须使用英文字母
切记不能再犯。
另外,可能导致R cannot be resolved to a variable的还有其他原因,很多时候是由于各种原因R.java没有生成,排查方法如下
转载自http://blog.csdn.net/jason0539/article/details/9708025
1. 检查Android 的SDK是否丢失需要重新下载,检查build path,把需要导入的JAR包确认都导入成功
2. 确保class没有import Android.R,注意是不能有Android.R,可以有其他R文件,比如你自己的包;
3. 错误class引用的layout的xml文件没有错误,经常是xml里面有错误,导致R文件无法正常生成
很多时候都是这个地方出错,可以尝试在layout 的xml文件手写添加一个控件,看id能否在R.java中自动生成,如果不能,那很大可能就是这个layout 的xml文件有问题,查看格式是否使用正确,或者包含什么非法字符串,或者调用到了不正确的字符串,等等,可以使用排除法,挨个去掉控件,直到发现error message消失或者id能在R.java中自动生成。记得以前经常因为android这个单词拼错而出现R文件无法正常生成而总是R cannot be resolved to a variable
4. 检查AndroidManifest.xml文件,里边的package,layout配置文件,strings.xml等的字符串全部书写正确.
5.删掉gen文件夹,使R.java重新自动生成一次,如果不能生成,继续检查layout的xml文件是否有如上不易发觉的问题
6.Clean project ,重新build,或者重新import project。
7.重启eclipse
8.重启电脑,以防Android 虚拟机的问题
转载自http://blog.sina.com.cn/s/blog_8a94d82b0101bdfb.html
真是奇怪,第一次导入一个项目时,竟然没有产生R.java文件,结果程序中一大堆错误,全是R cannot be resolved to a variable。
结果上网搜了半天,结果是
第一个查到的方法:
很多人碰到创建新工程的时候出现 cannot be resolved to a variable的问题时没法在第一时间得到最好的解决
其根本原因是r.java文件没有自动生成
关于一般的解决方案在网上很多人提出来了
比如CLEAN工程,CLEAN UP RESOURCE,Android Tools >> Fix Project Properties 等
但还是部分人看了网上的帖还不能解决,那么请注意两点:
1. 如果你在更新下载SDK,那么先关闭,重启ECLIPSE便可
2. 如果还不行,则更新完整ADT、SDK
本文出自 “清风柳絮” 博客,请务必保留此出处http://binuu.blog.51cto.com/801317/775781
第二个查到的方法:
*Note: Eclipse sometimes likes to add an "import android.R" statement at the top of your files that use resources, especially when you ask Eclipse to sort or otherwise manage imports. This will cause your make to break. Look out for these erroneous import statements and delete them.*
While going through the Android sample tutorials, I would often use the Ctrl + Shift + O command to "Organize Imports" and generate any missing import statements. Sometimes this would generate the incorrect import statement which would hide the R.java
class that is automatically generated when you build.
自我感觉应该是生成R.java的过程被打断了或发生了意外,于是删除原来的项目,重新导入,
哦哦,这次真的就成了!自动产生了R.java文件。