类似的问题在这里被问了两次,但从未得到任何答案。或者回答是:“不可能!”抱歉,可能太多了:
try{
...
// the line that causes the error
LinearLayout cell = (LinearLayout) inflater.inflate(R.layout.channels_list_cell, column);
...
}
catch(Throwable e){
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show(); < breakpoint here!
}
在断点处 e 为空。请问如何查找错误?很可能不是java或Android的问题,而是Eclipse调试器的问题,它本身就需要调试。但除了换一个 IDE 之外我还能做什么呢?有任何想法吗?事先感激不尽。
我尝试过 Throwable、Exception、RuntimeException。结果是一样的。
尝试跨过断点会导致 NullPointerException,因此,此时 e 似乎已经为空。哪里可能会丢失呢?
编辑:
我向每个人表示感谢,并对每个回答者+1。这是 Eclipse 的一个错误。重新启动 Eclipse 后,异常不再为 null,而是正常的 RuntimeException:二进制 XML 文件第 #15 行:您必须提供布局宽度属性。这将是另一个需要解决的问题,但这个问题已经解决了。
如果您捕获的异常是 NullPointerException,则 getMessage() 方法将返回“null”,这可能会令人困惑。我知道这有时让我感到困惑!
在调试器中,您应该能够选择 e 并查看类型及其字段。另外,当事情变得非常混乱时,另一种调试方法是
e.printStackTrace();
(注意 - 我不是 Android 专家,所以如果这在 Android 上的工作方式不同,请有人评论!)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)