所以,从Android和Java开始,我遇到了这个令人困惑的错误:当到达findViewByID(R.id.answer)时,应用程序会因意外停止消息而失败,但前提是我在代码中添加了另一个消息。
代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/site" />
<EditText android:id="@+id/site"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
<!--
<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/username" />
<EditText android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
-->
<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/password" />
<EditText android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/question" />
<EditText android:id="@+id/question"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/answer" />
<EditText android:id="@+id/answer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
<Button android:id="@+id/confirm"
android:text="@string/confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
OnCreate方法
super.onCreate(savedInstanceState);
setContentView(R.layout.keyedit);
setTitle(R.string.edit_entry);
mDbHelper = new KeyRingDbAdapter(this);
mDbHelper.open();
mSiteText = (EditText) findViewById(R.id.site);
//mUsernameText = (EditText) findViewById(R.id.username);
mPasswordText = (EditText) findViewById(R.id.password);
mQuestionText = (EditText) findViewById(R.id.question);
mAnswerText = (EditText) findViewById(R.id.answer);
因此,上述作品和行mAnswerText = (EditText) findViewById(R.id.answer);
将正确的对象分配给mAnswerText
。一旦我取消注释代码,之前工作的那条线就会失败。当我在图形布局上看到xml时,所有都显示正确。 R文件似乎没问题(我将其删除并重新生成,以防万一)。
有什么想法吗?还需要更多信息吗?
编辑:好吧,尴尬。昨晚我回到家,当我取消评论线路时,这次它起作用了。我作为程序员经验丰富,我做了足够的检查,知道不是我只是取消注释部分或做其他完全愚蠢的事情。虽然它可能与我刚接触Eclipse的事实有关。不酷,因为现在错误已被“神奇地”修复,我不是更明智的。答案 0 :(得分:0)
当然你输入了正确的R?有两个,确保你没有输入错误的......
答案 1 :(得分:0)
我今天遇到了同样的问题。在RelativeLayout中,我重新排序了布局xml文件 - 并得到了这个错误。
我清理了项目(Eclipse:Project / Clean)等等,它又恢复了工作。
Eclipse帮助:“清理 - 此命令会丢弃所有以前的构建结果。如果启用了autobuild,则会调用完整版本。”