R.java:令牌上的语法错误

时间:2013-05-05 09:41:54

标签: java android

我是Android开发的新手(尽管有一些Obj-C使用Cocoa Touch的经历)。当我遇到这些语法错误时,我正在测试我的第一个Android应用程序:

  

令牌“100000”上的语法错误,无效的VariableDeclaratorId

     

令牌“11”上的语法错误,删除此令牌

     

令牌“2”上的语法错误,删除此令牌

     

令牌“5000”上的语法错误,无效的VariableDeclaratorId

     

令牌“61”上的语法错误,VariableDeclaratorId无效

     

令牌“69”上的语法错误,无效的VariableDeclaratorId

当我双击它们时,它们似乎位于R.java文件中,我不知道它们是如何引起的。

   public static final class drawable {
        public static final int 100000=0x7f020000;
        public static final int 11ba=0x7f020001;
        public static final int 2values=0x7f020002;
        public static final int 5000=0x7f020003;
        public static final int 61=0x7f020004;
        public static final int 69=0x7f020005;
   .....

如果有人能说出这是怎么造成的话会很棒。

[更新]

MarsAtomic表示它是由于没有遵循Android资源的命名约定而造成的,并且可能具有名为“5000”,“69”的rawable,事实上,在这种情况下是正确的。

更改名称后,这些例外不再发生。

但我仍然想知道为什么用数字名称的图像会触发这个。感谢。

7 个答案:

答案 0 :(得分:4)

我的评论已经以某种方式消失了,但......每种语言都有命名约定。约定通常只是基于一些半任意启发式,因为你必须有规则(例如,更明确的是'a1'表示变量名,而名为'1'的变量可能会混淆一个值。)

你可以接受这个答案作为规范的答案 - 个人而言,我不会为谁获得什么功劳而烦恼。

答案 1 :(得分:3)

  

更改名称后,不再出现此例外情况。

     

但我仍然想知道为什么会这样。

由于这些资源的名称在自动生成的Java源文件(R.java)中用作字段名称,因此它们不是有效的Java字段名称。 Java字段名称必须以字母开头。有关字段名称here in the JLS中允许的字符的详细信息。

(实际上,MarsAtomic应该获得此奖励,但似乎没有看到转贴的问题。)

答案 2 :(得分:2)

您无法声明以数字开头的变量名称。

答案 3 :(得分:0)

R.class是自动生成的,如果你更改了它,它将无法正常工作。

你要清理和建造你的项目。

答案 4 :(得分:0)

如果您在

中收到错误
public static final class drawable {

最常见的错误是res文件夹中的一个名为.png的文件,以数字开头。

例如1_pic.png2015_22_22pic.png等等。

正确的方式:pic_1.png

答案 5 :(得分:0)

位于\ res \中的所有文件夹中,查找名称与其他文件不同的文件,如00000002.如果找到,只需将其删除即可。然后在eclipse中单击项目名称,然后按F5键刷新它。因此,错误将消失,您的R文件将被更新。

答案 6 :(得分:-2)

看看RES目录。您可能有一个带有上述数字序列的文件,例如00000002.要解决此问题,只需将其从文件夹中删除即可。