我刚刚下载并安装了新的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中的res/drawable文件夹中没有错误。在命名此文件夹中的图像时,不要给出数字和大写字母。

其他回答

检查XML文件的内容。如果layout_width或layout_height包含match_parent元素,则将其更改为fill_parent。这为我解决了问题。

这对我很管用。

我没有“import android”。R’在eclipse向导创建的全新项目中。默认的XML布局文件也是小写的。

问题是eclipse没有生成R.java。再多的清理/重新启动也没有任何效果。

我注释了setContentView和getMenuInflator调用,make成功后,Eclipse生成了R.java。

一旦生成了R.java,我就可以取消setContentView和getMenuInflator的注释。

确保你安装了Android构建工具表单sdk管理器

项目右击属性-> Java BuildPath选择Library并添加android-support.jar。

转到项目->属性->Java构建路径,然后选择订单和导出选项卡。将android-support .jar库设置为选中,并将其置于列表顶部。清理和重建,它适用于大多数情况

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

当你得到

R不能被分解

然后检查/res目录,一定有一些文件有一些错误,这是阻止应用程序被构建。例如,它可能是一个布局文件,也可能是由于某些缺少的资源,但您已经在XML文件中定义了它。

如果您在res/ drawabiles -mdpi这样的文件夹中有任何附加的,甚至是未使用的(!)或未引用的(!)图像,这些图像不符合文件命名约定(可能只包含[a-z0-9_.]), R.java类可能不会生成,导致所有其他帖子引用的事件链。