我刚刚下载并安装了新的Android SDK,我想要创建一个小的应用来测试一下:
安装向导创建了下边这样的代码:
package eu.mauriziopz.gps;
import android.app.Activity;
import android.os.Bundle;
public class ggpsextends Activity {
/** 当activity第一次创建的时候调用*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
但是Eclipse给出了我这个错误:
R cannot be resolved
在这一行
setContentView(R.layout.main);
为什么?
PS:我在res/layout/ 下有一个XML文件命名为main.xml .
在跟踪这个问题的时候,我在Android的文档中发现了这个记录
http://source.android.com/source/using-eclipse.html
注意:Eclipse有时候喜欢在你使用的文件资源的顶部加“import android.R”的声明,尤其是当你请求Eclipse分类或相反的管理导入的时候。这将引起你的程序出现问题。找到这些错误的导入语句,然后删除它们。
尽管检查了android示例教程,我仍然经常使用ctrl+shift+O命令来“Organize Imports”和生成任何缺少的导入语句。有时候将生成错误的导入语句,因为这隐藏着当你创建的时候自动生成的R.java类。
看看你的输入。把那一行改为:
import android.R;
如果那就是原因,删除它,这样你的项目将会解决掉R不是默认的Android资源类的问题,但是将会在你的/res/文件夹中自动生成一个。
无论什么时候你得到
R cannot be resolved
检查/res这个目录,这里边的文件可能会有一些错误,就是他们阻止了应用程序的创建。例如,它可能是一个布局文件或者它可能归到一些丢失的资源,但是你已经在XML文件中定义它了。
这个错误也可能通过给一个名称空间添加一个activity引起,但是这个activity对于你的包里的名称空间的根目录来说是不同的。
这将产生“R cannot be resolved”的错误。在你的activity的默认的名称空间修复导入R的错误应该是import com.example.myapp.R;
我也遇到过这个问题,应该是这样的:我创建的XML文件名使用了大写字母, 而在/res
中的合法字符为:[a-z0-9\\._]
2.确保class没有import Android.R;
3,错误class引用的layout的xml文件没有错误
4.检查AndroidManifest.xml文件,里边的package,layout配置文件,strings.xml等的字符串全部书写正确
5.layout的xml文件中引用的strings.xml中的字符串拼写完全正确
6.在layout 的xml文件手写添加一个控件,看id能否在R.java中自动生成,如果不能,那很大可能就是这个layout 的xml文件有问题,查看格式是否使用正确,或者包含什么非法字符串,或者调用到了不正确的字符串,等等,可以使用排除法,挨个去掉控件,直到发现error message消失或者id能在R.java中自动生成。
7.删掉gen文件夹,使R.java重新自动生成一次,如果不能生成,继续检查layout的xml文件是否有如上不易发觉的问题
8.Clean project ,重新build,或者重新import project。
9.重启eclipse
10.重启电脑,以防Android 虚拟机的问题
在跟踪这个问题的时候,我在Android的文档中发现了这个记录
http://source.android.com/source/using-eclipse.html
请检查下属xml文件是否正常
我这边是更新sdk版本解决
build clean 一下,还是不行的话,看你res目录下有没有文件报错,修复错误后再试试
如果那就是原因,删除它,这样你的项目将会解决掉R不是默认的Android资源类的问题,但是将会在你的/res/文件夹中自动生成一个。
你好1234
哈哈哈123