EclipseR.java更改未保存

EclipseR.java更改未保存,java,android,eclipse,r.java-file,Java,Android,Eclipse,R.java File,当我“快速修复”一个类似“gcm_unregistered无法解决或不是字段”的错误,并单击“Create constant gcm_unregistered in type String”(创建常量gcm_unregistered in type String)时,会出现一个外接程序R.java-> 公共静态最终类字符串{ public static final int gcm_unregistered = 0; 保存后,项目将重建并创建一个新的标准R.java,而不添加行。 我在R

当我“快速修复”一个类似“gcm_unregistered无法解决或不是字段”的错误,并单击“Create constant gcm_unregistered in type String”(创建常量gcm_unregistered in type String)时,会出现一个外接程序R.java->

公共静态最终类字符串{

    public static final int gcm_unregistered = 0;
保存后,项目将重建并创建一个新的标准R.java,而不添加行。
我在R.java中看到过多行的示例,因此我的项目中出现了一些问题,或者我错过了一个设置?

我不确定“未注册的gcm_”应该是什么,但我建议不要编辑R类,因为它是生成的。如果您想在资源(R)中添加一些内容这是安卓操作/访问资源的网站


编辑:所以你想添加一个字符串资源,然后转到res/values/下的strings.xml并添加未注册的gcm_,该值是你想要的。

R.java
是一个由Android构建过程自动生成的文件。再次构建项目时,你对它所做的任何更改都将丢失

如果您想添加自己的常量,只需将自己设置为
常量
类(我通常称我的
C
,以保持简短)

现在您可以将其作为
常量进行访问。gcm\u未注册

对R.java的更深入解释

Android将基于XML的布局视为资源,因此布局文件被存储 在Android项目的res/layout目录中。字符串、颜色、原始二进制数据(如声音文件等)也被视为资源。本质上,任何
/res
文件夹中合法允许的任何内容都是资源

运行Android构建系统时,
aapt
工具会生成一个新的
R.java
文件并覆盖旧文件。该文件将包含指向所有
ID
字符串
布局
颜色
等的指针。
R.java
不应手动修改。如果您想要中的值ode>R.java,您应该检查是否可以合法地将其添加到
/res
文件夹中,如果可以,请执行此操作。但是,您不能将
int
值添加到其中(请注意,
R.java
中的所有内容都是
int
,它们指向各种其他资源。因此,
R.layout.mylayout
将是
int
值,它实际上告诉Android使用
mylayout.xml
文件


R.java和/res文件夹的不同部分都有一个很好的writeup。

R.java被构建修改,您不应该修改它,因为您的更改将丢失。

这应该可以工作,直到您的构建过程以某种方式覆盖了
R.java
,我想是这样。找不到不覆盖的设置。。。你知道吗?哈利:我不知道
R.java
是一个系统文件(我认为它是一个通用的java文件,并给出了建议)。PS:我几乎不知道
android开发
我的评论完全是基于我对java的了解。谢谢。为什么“快速修复”会出现给出这个解决方案?快速修复是建议。程序员不应该只依赖IDE的建议。快速修复是Eclipse的一个功能,它不知道Android项目中的R.java会被Android构建修改。谢谢,这就是诀窍!当在stings.xml中添加字符串时,会出现在R.java中…@Harry,当你尝试获取它时在你的应用程序中,你必须首先将其作为字符串,然后将其解析为整数。这只是一点额外的处理,但这是可以避免的。我比我更喜欢你的答案。虽然对于这个特殊的问题,我不确定常量类,但肯定是一个很好的答案+1常量类的优点是你可以如果您将文件名和键值存储为常量,则可以消除SharedPref等中的键入错误。这个答案只是一个示例。谢谢:)
public class Constants {

    public static final int gcm_unregistered = 0;

}