2010-11-08 35 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通話?