2 yiranwujixian yiranwujixian 于 2012.09.10 11:39 提问

Android错误-R cannot be resolved

我刚刚下载并安装了新的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 .

13个回答

suannai0314
suannai0314   2012.09.10 11:53
已采纳

在跟踪这个问题的时候,我在Android的文档中发现了这个记录
http://source.android.com/source/using-eclipse.html

注意:Eclipse有时候喜欢在你使用的文件资源的顶部加“import android.R”的声明,尤其是当你请求Eclipse分类或相反的管理导入的时候。这将引起你的程序出现问题。找到这些错误的导入语句,然后删除它们。

尽管检查了android示例教程,我仍然经常使用ctrl+shift+O命令来“Organize Imports”和生成任何缺少的导入语句。有时候将生成错误的导入语句,因为这隐藏着当你创建的时候自动生成的R.java类。

cjws555
cjws555 111哈哈哈
2 个月之前 回复
yizhenbeifeng
yizhenbeifeng   2012.09.10 13:54

这个错误也可能通过给一个名称空间添加一个activity引起,但是这个activity对于你的包里的名称空间的根目录来说是不同的。
这将产生“R cannot be resolved”的错误。在你的activity的默认的名称空间修复导入R的错误应该是import com.example.myapp.R;

mansuifengqi
mansuifengqi   2012.09.10 13:11

看看你的输入。把那一行改为:

import android.R;

如果那就是原因,删除它,这样你的项目将会解决掉R不是默认的Android资源类的问题,但是将会在你的/res/文件夹中自动生成一个。

franzhong
franzhong   2012.09.21 17:25
  1. 检查Android 的SDK是否丢失需要重新下载,检查build path

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 虚拟机的问题

niangzhi
niangzhi   2012.09.10 13:40

无论什么时候你得到

R cannot be resolved

检查/res这个目录,这里边的文件可能会有一些错误,就是他们阻止了应用程序的创建。例如,它可能是一个布局文件或者它可能归到一些丢失的资源,但是你已经在XML文件中定义它了。

MrsSeven7
MrsSeven7   2012.09.13 11:35

我也遇到过这个问题,应该是这样的:我创建的XML文件名使用了大写字母, 而在/res中的合法字符为:[a-z0-9\\._]

qazwsx132656526
qazwsx132656526   2015.08.31 20:04

在跟踪这个问题的时候,我在Android的文档中发现了这个记录
http://source.android.com/source/using-eclipse.html

gary16
gary16   2016.02.03 14:48

请检查下属xml文件是否正常

wcqq12345
wcqq12345   2016.05.26 08:35

我这边是更新sdk版本解决

oSanYeCao1234567
oSanYeCao1234567   Ds   Rxr 2016.10.02 11:45

build clean 一下,还是不行的话,看你res目录下有没有文件报错,修复错误后再试试

共13条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片