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


当前回答

每次我遇到这个错误,总是落在SO。 说到底,原因都是一样的。

所以请永远记住这张小纸条

我发现大部分时间的原因是-错误的XML布局

如果您的XML不正确,则R文件不会在 构建。

其他回答

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

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

2.Java构建路径

3.订购及出口

将Build类路径的顺序更改为

1 .(软件包名称)/ src

2.Android(版本号)

3.Android依赖关系

4 .(软件包名称)/ gen

在运行x64 Linux时,您可能会丢失一些x32构建库。对于Debian,请确保安装了libc6-i386和zlib1g包。

在我的情况下,我的AndroidManifest.xml有一个错误。其他人说你的XML文件必须没有错误,但我只在res/文件夹里看了看。发现并修复尽可能多的错误,问题就会自行解决。

我也有这个问题。结果发现我无意中从strings.xml文件中删除了“app_name”字符串资源,这导致了一个无声错误。一旦我重新添加了它,R类就成功生成了,一切都恢复并运行了。

在我的情况下,R.java没有生成,因为在AndroidManifest.xml文件中有一个问题,其中我错误地指定了一个活动的名称!