R.java中的奇怪错误,即使在清理项目之后:"下划线只能用于源级别1.7或更高"

Jas*_*ray 14 java eclipse android android-resources

所以一切都很顺利,直到不久前R.java在添加图标后确定出现此错误(5_content_new.png确切地说).

我已经尝试清理项目并重新启动eclipse,但无济于事.

问题代码:

public static final class drawable {
    public static final int 5_content_new=0x7f020000;
    public static final int ic_launcher=0x7f020001;
    ...
}
Run Code Online (Sandbox Code Playgroud)

红线显示在右下方5_,错误显示:

Underscores can only be used with source level 1.7 or greater

以前有人遇到过这样的问题吗?

Ste*_*n C 23

这是两件事的组合:

  1. Java标识符不能以数字开头.第一个字符应该是一个字母.

  2. 在Java 7中,他们为整数文字引入了替代语法; 例如1_000是一样的1000.

所以正在发生的事情是编译器正在解析5_content_new5_ content_new...如果源级别是Java 7,那么这是合理的,然后告诉您不使用Java 7.如果您一直在使用Java 7,那么编译错误会有被一个错误所取代,该错误表示整数文字(5_)在那时是不合法的.

简而言之,代码包含一些"离墙"的东西,编译器编写者没有在编译器诊断代码中预期它.


另一点是在Java中使用变量,方法,类或包名称中的任何下划线是样式违规.下划线应仅用于全大写常量名称,如"MAX_VALUE".