2011-05-04 59 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); 
相关问题