我有2个无法解决的错误,所以我“清理了我的项目”,删除了我的R.java文件,并且没有自动生成。经过多次试验和错误后,我发现每个错误(这意味着我的项目的80%)被评论出来,然后再次清理,确实重新生成了R.java。但现在不是“R不是字段”错误,而是我的项目中连接到“R.something”代码的所有变量现在都不被识别为字段。然而我看着R.java,他们都有id #s。所以我试图刷新我的项目,并试图关闭/打开日食,但没有任何工作。有谁知道如何让这些变量再次被识别?非常感谢你的帮助。
答案 0 :(得分:1)
由于以下原因,AFAIK R.java无法生成。 1)以大写字母命名的资源。 2)布局组件的ID空间,如按钮ID等。 3)命名资源中使用的任何数字。
答案 1 :(得分:1)
谢谢大家,你的每一个答案都让我摆弄并检查/重新检查,我发现了真正的问题。这不是xml中的错误,而是我的main.java文件中的一个警告(导致所有红色错误)关于在我设法重新生成我的R.java文件时发生的自动生成的导入。它看起来像这样:
import android.R
一个微小的黄色警告表示该代码不需要存在并可能导致其他错误。这正是发生的事情。所以我删除了导入(我很少知道R.java在我的main.java文件中不需要导入声明)。当我执行[command] + [shift] + [O]时,它也不会自行擦除,很高兴知道删除它会消除所有的红色错误。
感谢您的所有想法!真的很有帮助。
为了更清楚,错误显示在我的所有R.layout.variable_name_here
代码中,这是有道理的,因为它以某种方式连接到R.java。
以下是一个示例(我发现了错误):
private void checkAnswer(boolean userPressedTrue) {
boolean answerIsTrue = mQuestionBank[mCurrentIndex].isTrueQuestion();
int messageResId = 0;
if (userPressedTrue == answerIsTrue) {
messageResId = R.string.correct_toast;
}
else {
messageResId = R.string.incorrect_toast;
}
Toast.makeText(this, messageResId, Toast.LENGTH_SHORT).show();
连接到R的两个变量(以及许多其他变量)都有错误:correct_toast和incorrect_toast。
答案 2 :(得分:1)
如果混合使用点(。)和下划线(_),也会出现此错误。例如android:id="@+id/comment_label"
和android:id="@+id/comment.label"
生成两个具有相同名称的字段,即comment_label,因此出错。
希望这有助于某人。
答案 3 :(得分:0)
您的某些xml文件中存在错误 - 布局,可绘制以及可通过R类访问的任何其他内容。它可能只是错误的语法,但这是不生成R.java的最常见问题。
您必须找到该错误并进行修复。检查,仔细检查并三重检查您的xml文件。
答案 4 :(得分:0)
确保您的布局文件没有错误,并在您的活动/片段
中查看此文件import com.org.packagename.R;