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


当前回答

您可能需要更新/安装SDK工具。重新启动Android SDK管理器,并安装一个新项目:Android SDK Build-tools。逐个删除,修正哪一个适合你。

其他回答

威尔说的对吗

R是一个自动生成的类,它包含用于标识>资源的常量。如果你没有R.java文件(它将是gen/eu.mauriziopz.gps/R.java在>Eclipse与1.5 SDK),我建议关闭和重新打开你的项目或去>项目>构建所有(并选择“自动构建”,而>Josef的建议)。如果这不起作用,那就尝试做一个新项目,如果问题是重新创建的,那么>帖子在这里再次发布,我们将更详细地介绍。

但我发现还有另一个问题导致了第一个问题。SDK目录中的工具没有被执行的权限,所以它就像Eclipse不存在一样,因此它没有构建R.java文件。

因此,修改权限并选择“自动构建”就解决了这个问题。

R.java不能自动生成的原因是如果你有这样的目录

res/drawable-hdpi, 
res/drawable-mdpi, 
res/drawable-ldpi.

image name should be in a proper way

检查映像名称 并检查和布局/any.xml 和string.xml

如果您使用的是Mac,请检查. ds_store是否已添加到/res目录中(终端命令行中的ls -al)。删除它并刷新/重建。

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

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

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

不幸的是,现有的问题没有一个有用。由于我的问题似乎是平台特定的,这可能只适用于如果你是Ubuntu 64位(我目前使用Ubuntu 12)。 一开始我没有看到“问题”窗口,它已经暗示了一个解决方案,在64位环境中,你需要32位库,这可能会丢失:

Sudo apt-get安装ia32-libs

我安装了软件包并重新构建了我的项目,这为我解决了这个问题。