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


当前回答

这可能是由于手动重命名AndroidManifest.xml中的包而导致的问题

另一种选择是使用内置工具重命名包,这将照顾到大多数问题,避免R not found问题。

Right Click on the project
Click on Android Tools
Click on Rename Application Project
Enter the new package name

然后将出现一个弹出窗口,要求应用更改,包括R工作区。

在android中重命名包名

其他回答

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

Sudo apt-get安装ia32-libs

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

我有Android 8的例子,并试图使用Android 7 SDK。当我关闭项目并重新打开应用程序文件夹并选择使用Android 8 SDK时,它能够找到R文件。希望这能有所帮助。

根据前面的建议,确保你的Android目标已经设定好:

右键单击项目 选择属性 在左侧菜单中选择Android 在适当的项目构建目标旁边的方框中打勾。 单击“应用”并“确定”

编辑:一年后,我发现了另一个原因。我的可绘制文件夹中有一个。jpg图像,它的名称与。png图像相同。在我的代码中引用这张图像一定是混淆了程序,它给出了“R不能被解析”的错误。

我的解决方案(在Eclipse Juno上)是点击“Fix Project properties”,通过:

在项目上单击鼠标右键 选择Android工具菜单 单击修复项目属性

ps.首先检查R库是否未实现,res/文件夹中的所有文件是否正常。

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

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

import android.R;

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