android - r 无法解析- 安卓错误

  显示原文与译文双语对照的内容

我刚下载并安装了新的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);

为什么?

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

时间:

在跟踪这个问题之后,我在Android文档中找到了这个注释:

http://source.android.com/source/using-eclipse.html

*Note: Eclipse 有时喜欢在你的文件顶部添加"导入 android.r"语句,使用资源,尤其当你要求 Eclipse 排序或者管理导入时。 这将导致你的 break 。 注意这些错误的导入语句并删除它们。*

外出时通过安卓示例教程,我会经常使用 Ctrl + 移位 + O 命令来"组织导入"并生成任何缺失的导入语句。 有时这将生成不正确的导入语句,它将隐藏在生成时自动生成的R.java 类。

每当你得到

R 无法解析

然后检查 /res 目录,并且必须有一些文件在其中有一些错误,这阻碍了应用程序的构建。 例如它可能是一个布局文件,或者是由于一些缺少的资源,但是你已经在XML文件中定义了它。

如果你有任何其他类似的文件夹实时计算系统中,甚至未使用( ) 或者未引用( ) 影像/drawables-mdpi是哪个不符合国家 R.java 类的文件命名约定( 只能包含 [a-z0-9_.] ),可能无法生成,导致一连串事件所有其他的帖子指的。 希望有帮助!

我的项目包含一个 r.java.at 开头,good.But,,布局。添加一些代码后,主要工作无法正常工作。错误是 R.layout.main 。问题是什么?

看看你的导入。这一行可能是:

 
import android.R;

 

在你/res/folder,就到。如果遇到这种情况,请将它的删除,这样,你的项目将解决 R 不使用默认安卓资源类,但使用了一个

另一个可能导致这个问题的原因:

我安装了新的ADT ( v 。 创建 gen 文件夹其中包括 R.java 22 ) 。被停止了。 解决方案是从 Android SDK Manager 安装新的Android SDK构建工具。

解决方案在这里找到了

R.java 是 Android Eclipse 插件在构建应用程序时创建的文件。 R.java 是在"gen"目录下创建的。 这里文件是从"res"目录中的信息生成的。 如果你运行选择"项目"->"清理。。"Eclipse 菜单上的,它将移除然后重新生成 R.java 文件。

AndroidManifest.xml file,问题"R 无法解析"发生当你更改你的包名。 它使用你的Android软件包名称在"gen"目录下创建一个子目录,它存储 R.java 文件。

Eclipse 在执行clean时可能有问题,因为在你更改Android软件包名称时,它可能会混淆 R.java 文件的位置。 你可以重命名 gen 下的子目录以匹配新的软件包名称,也可以将软件包名称更改为旧名称。 清除并将软件包名称更改为你想要的新名称。 如果你在更改软件包名称时阻止 Eclipse 尝试生成,这工作最好。 取消选中选项以"自动生成""项目"菜单下的东西,而且当看到"清理。。"对话框询问应该"立即开始生成"取消选中该框,这样,就不会再尝试构建你在换胎时软件包名称。 更改名称后,可以再次打开"自动生成"。

请注意,如果你的软件包名称不匹配你的Java软件包名称,Eclipse AndroidManifest.xml 文件最后会自动添加一个"导入 <软件包名称>. r ;"线在所有你的.java 文件有任何对 R 引用。 如果更改 AndroidManifest.xml 软件包名称,有时 Eclipse 不会更新所有已经添加的导入。 如果发生这种情况,使用 Eclipse 重构( ALT + 移位 + R ) 将一个Java文件中的导入语句更改为新的AndroidManifest.xml 包名称。 在禁用"自动生成"时最好这样做。

所说的是正确

R 是一个自动生成的类,它包含用于标识你的> 资源的常量。 如果你没有 R.java 文件( 它将是 gen/eu.mauriziopz.gps/R.java 在> Eclipse,并带有 1.5 SDK ),我建议关闭并重新打开项目或者转到> 项目> 构建所有( 并选择"构建自动"> Josef推荐的同时) 。 如果这不能做一个新的项目,如果问题是重新创建,而不是> post,我们将更详细。

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

所以修改权限并选择"自动生成"解决了这个问题。

将 Activity 添加到与包的根命名空间不同的命名空间中也可能导致这里错误。

例如如果 com.example.myapp 是你的软件包的根名称空间,那么你可以将一个 Activity 添加到 com.example.myapp.activities 命名空间。

这将产生"R 无法解析"错误。

来修正应将你中的默认命名空间中导入 R Activity:


import com.example.myapp.R;

...