当我“快速修复”类似“gcm_unregistered 无法解决或不是字段”之类的错误并单击“在字符串类型中创建常量 gcm_unregistered”时,R.java 中有一个添加 - >
公共静态最终类字符串{
public static final int gcm_unregistered = 0;
保存后,项目重建并创建一个新的标准 R.java 没有添加的行。我在 R.java 中看到了更多行的示例,所以我的项目中出现了问题或者我错过了一个设置?
当我“快速修复”类似“gcm_unregistered 无法解决或不是字段”之类的错误并单击“在字符串类型中创建常量 gcm_unregistered”时,R.java 中有一个添加 - >
公共静态最终类字符串{
public static final int gcm_unregistered = 0;
保存后,项目重建并创建一个新的标准 R.java 没有添加的行。我在 R.java 中看到了更多行的示例,所以我的项目中出现了问题或者我错过了一个设置?
我不确定 gcm_unregistered 应该是什么,但我建议不要编辑 R 类,因为它是生成的。如果您想在 Resources (R) 中添加一些内容,请通过 xml 进行。这里是 Android 用于操作/访问资源的站点http://developer.android.com/guide/topics/resources/accessing-resources.html
编辑:所以你想添加一个字符串资源然后转到 res/values/ 下的 strings.xml 并添加 gcm_unregistered 和你想要的值。
R.java
是由 Android Build 进程自动生成的文件。再次构建项目时,您对其所做的任何更改都将丢失。
如果你想添加自己的常量,只需让自己成为一个Constants
类(我通常称之为 mine C
,以保持简短)
public class Constants {
public static final int gcm_unregistered = 0;
}
现在您可以将其作为Constants.gcm_unregistered
.
R.java的更深层次的解释
Android 将基于 XML 的布局视为资源,因此布局文件存储在 Android 项目内的 res/layout 目录中。字符串、颜色、原始二进制数据(如声音文件等)也被视为资源。本质上,任何/res
文件夹中合法允许的任何内容都是资源。
当您运行 Android 构建系统时,该aapt
工具会生成一个新R.java
文件并覆盖旧文件。此文件将包含指向所有IDs
、Strings
、等的指针Layouts
,切勿手动修改。如果您想要 中的值,则应检查是否可以合法地将其添加到其中一个文件夹中,如果可以,请这样做。但是,AFAIK,您不能为其添加值(请注意,虽然其中的所有内容都是,但它们指向各种其他资源。因此,虽然将是一个值,但它实际上告诉 Android 使用该文件。Colors
R.java
R.java
/res
int
R.java
int
R.layout.mylayout
int
mylayout.xml
这里有一篇关于 R.java 和 /res 文件夹不同部分的优秀文章。
R.java 被构建修改,您不应该修改它,因为您的更改将丢失。