当找不到R.id值时抛出Android Nullpointerexception

时间:2013-07-11 02:09:13

标签: android ant r.java-file

当我在我的Android项目中添加一个新活动(.java和.XML文件)时,一些过去工作的R.id值会丢失并导致我的App抛出NullPointerException,但是如果我使用十六进制值它会工作再次:

R.java: public static final int editTextTotal=0x7f040064;

findViewById(R.id.editTextTotal); //Throws nullpointerex after I add a new activity.

findViewById(0x7f040067) //Works

我厌倦了Eclipse,所以我只使用命令,除了添加文件,更改清单并运行“ant debug”命令添加新活动之外还有什么应该做的吗?

3 个答案:

答案 0 :(得分:0)

您使用的是什么导入?你必须使用

  

your_package_name.R

答案 1 :(得分:0)

您的ADT有问题。尝试更新到最新版本。

如果问题仍然存在,请在添加新xml时尝试清理项目。

答案 2 :(得分:0)

以下是我在Eclipse中修复此问题的方法:

手动在 gen 文件夹中创建R.java并保存。之后转到项目并单击“清除”将显示以下消息,您的文件将自动被重写:

R.java手动修改!恢复生成版本!

这是替代方法

R是一个自动生成的类,它包含用于标识>资源的常量。如果您没有R.java文件(在带有1.5 SDK的Eclipse中,它将是gen / com.techfuze.app_name / R.java),我建议关闭并重新打开您的项目或转到>项目>构建所有(并根据> Josef的建议选择“自动构建”)。如果这不起作用而不是尝试制作一个新项目,如果重新创建问题而不是再次发布此处,我们将详细介绍。

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

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