我是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,事实上,在这种情况下是正确的。
更改名称后,这些例外不再发生。
但我仍然想知道为什么用数字名称的图像会触发这个。感谢。
答案 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.png
,2015_22_22pic.png
等等。
正确的方式:pic_1.png
答案 5 :(得分:0)
位于\ res \中的所有文件夹中,查找名称与其他文件不同的文件,如00000002.如果找到,只需将其删除即可。然后在eclipse中单击项目名称,然后按F5键刷新它。因此,错误将消失,您的R文件将被更新。
答案 6 :(得分:-2)
看看RES目录。您可能有一个带有上述数字序列的文件,例如00000002.要解决此问题,只需将其从文件夹中删除即可。