我刚刚下载并安装了新的Android SDK。我想创建一个简单的应用程序来测试它。

向导创建了以下代码:

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

但是Eclipse给出了错误

R不能被分解

在网上

setContentView(R.layout.main);

Why?

PS:我在res/layout/下有一个名为main.xml的XML文件。


当前回答

我通过将资源文件直接放在Android指定的目录中解决了这个问题。我错误地认为R.raw可以包含我的资源的整个文件目录。所有文件都必须将R.raw作为直接父目录。

其他回答

我今天也遇到了同样的问题。我尝试使用sdk管理器执行所有sdk更新。完成并重新启动IDE后,问题已解决。

我的项目有一个r.java.在开始,R.layout。主要工作好。但是,在添加了一些代码后,它不能工作,错误是r.b ayout.main不能解决。有什么问题吗?

查看您的导入。很有可能这句话是:

import android.R;

会在那里。如果是这种情况,删除它,这样你的项目就不会用默认的Android资源类来解析R,而是用从你的/res/文件夹自动生成的类来解析R。

从这里提供的许多答案来看,帮助我的是在java构建路径的“order and Export”中更改顺序。

1.单击您的项目->项目属性

2.Java构建路径

3.订购及出口

将Build类路径的顺序更改为

1 .(软件包名称)/ src

2.Android(版本号)

3.Android依赖关系

4 .(软件包名称)/ gen

我将AndroidManifest.xml文件中的android:versionName从1.0更改为1.1。这重新生成了我的R.java文件,我很高兴。我希望这能帮助到一些人。

此外,如果你的res文件夹中有额外的文件,如“desktop.ini”,这些文件是操作系统添加的,但完全没有必要,试着删除它们。这显然是我导入项目中阻碍生成R.java的原因之一。