2010-11-08 63 views
5

我一直在为Android编程而取得了不俗的成功,但我注意到的一件事是,当我得到NullPointerExceptions时,堆栈跟踪毫无价值。他们总是这样的格式:Android:泛型空指针异常

Thread [<1> main] (Suspended (exception NullPointerException)) 
    ViewRoot.draw(boolean) line: 1431 
    ViewRoot.performTraversals() line: 1163 
    ViewRoot.handleMessage(Message) line: 1727 
    ViewRoot(Handler).dispatchMessage(Message) line: 99 
    Looper.loop() line: 123 
    ActivityThread.main(String[]) line: 4627  
    Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
    Method.invoke(Object, Object...) line: 521 
    ZygoteInit$MethodAndArgsCaller.run() line: 868 
    ZygoteInit.main(String[]) line: 626 
    NativeStart.main(String[]) line: not available [native method] 

通常堆栈跟踪告诉你身在何方代码炸毁了,但我似乎总是得到最通用的一种可能。我错过了明显的东西吗?谢谢。

回答

6

如果您使用的是Eclipse,请查看DDMS或Debug透视图中的LogCat。它会显示异常本身的堆栈跟踪以及导致它的代码的堆栈跟踪。

+1

为什么它不会在调试视图中显示异常?看起来很奇怪,它选择堆栈的“坏”部分来显示。 – skaz 2010-11-29 15:07:40

0
NativeStart.main(String[]) line: not available [native method] 

我不是100%肯定在这里,但也许你正在调用一个不存在的API?

例如,您是否试图在运行较低版本Android(2.1,1.6,1.5)的手机/模拟器上进行Android 2.2通话?