2011-05-26 86 views
0

因此,從Android和Java開始,我有這個莫名其妙的錯誤:當達到findViewByID(R.id.answer)時,應用程序失敗並且意外停止消息,但僅當我添加另一個一個代碼。Android應用程序上的findViewById失敗

的代碼如下:

<?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

您已經評論了java代碼和xml文件中的元素 - 所以,只要確定,如果您取消註釋*兩個*部分(不僅僅是java代碼中的行),應用程序就會失敗! – 2011-05-26 14:41:05

+0

請發佈完整的logcat錯誤消息。 – Haphazard 2011-05-26 14:45:19

+0

@Andreas_D是的,取消註釋。 – 2011-05-26 14:59:38

回答

0

我今天面臨同樣的問題。在RelativeLayout中,我重新排列了佈局xml文件 - 並得到了這個錯誤。

我清理了項目(Eclipse:Project/Clean)等等,它再次運行。

Eclipse幫助:「清潔 - 該命令放棄所有以前的構建結果,如果autobuild打開,則調用完整構建。

0

確定您導入了正確的R?有兩個,確保你沒有輸入錯誤的...

+0

我會檢查。但是,如果我導入了錯誤的,那麼註釋行就會失敗,因爲它具有新的ID,而不是ID已經工作的那一行。情況不是這樣嗎? – 2011-05-26 15:11:36

+0

是的,你是對的......但是,這發生在我身上的一個觀點,這就是爲什麼我想提及它;) – 2011-05-27 05:42:51

+0

我很確定我會在未來找到這樣的問題,所以我會保持這個金塊信息:-) – 2011-05-27 08:30:47

相關問題