2011-05-04 56 views
1

我修改了我的main.xml和我的android應用程序崩潰。findViewById拋出一個RuntimeException

我運行調試,並發現它在

ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2663 

拋出一個RuntimeException我無法理解其中的錯誤是在我的計劃。我一分爲二的代碼,找到這一行把它:

giveUpButton = (Button) findViewById(R.id.GiveUpButton); 

我敢肯定,因爲在我刪除了此行的異常消失。

我沒有任何想法。爲什麼不是堆棧頂部findViewById?爲什麼會拋出異常?

我有這樣的代碼main.xml中:

<Button 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/give_up_button" 
android:id="@+id/GiveUpButton"/> 
+0

之前如果findViewById找不到視圖,它會返回null拋出一個RuntimeException來代替。我很困惑。 – 2011-05-04 17:38:02

+1

logcat中有什麼? – CaseyB 2011-05-04 17:42:07

+0

是的,請向我們展示異常跟蹤的其餘部分。 – adamp 2011-05-04 18:58:35

回答

3

我知道這聽起來像一個笑話。但是我通過重新啓動Eclipse來解決了這個問題。

這很可能是由Git的結帳造成的。我在不關閉Eclipse的情況下切換分支。

我該如何避免這樣的問題?花費很多時間重複重新啓動Eclipse。

+1

我在使用Eclipse的過程中偶爾會看到類似的情況。 AFAIK一旦我在「全部保存」中保存了代碼和佈局xml文件中的更改,就會發生該問題。這似乎以應用程序永遠不會啓動的方式混淆了構建 - 但我從來沒有對根本原因進行任何挖掘。只是說這聽起來很相似。我在這些情況下所做的是從項目菜單中選擇「清理..」。 – harism 2011-05-04 18:01:39

+0

下一次嘗試「清理」您的項目並查看重新啓動之前是否有效。 – 2011-05-04 18:34:53

+0

謝謝!我已重新啓動,它不夠,我做了一個清潔,現在它工作!我認爲你可以驗證你自己的anwser。 – NicoMinsk 2011-05-21 21:45:57

0

做你

setContentView(R.layout.main) 

giveUpButton = (Button)findViewById(R.id.GiveUpButton); 
相關問題