2010-11-08 17 views
5

Ho programmato per Android con discreto successo, ma una cosa che ho notato è che quando ottengo NullPointerExceptions la traccia dello stack è inutile. Sono sempre di questo formato:Android: generico Null Pointer Exceptions

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] 

solito impilare tracce vi dicono proprio dove il codice è fatto esplodere, ma mi sembra sempre di ottenere il massimo generica una possibile. Mi manca qualcosa di ovvio? Grazie.

risposta

6

Se si utilizza Eclipse, consultare LogCat nelle prospettive DDMS o Debug. Ti mostrerà la traccia dello stack dell'eccezione stessa e quella del codice che l'ha provocata.

+1

Perché non dovrebbe mostrare l'eccezione nella vista Debug ??? sembra strano che abbia scelto la parte "cattiva" della pila da mostrare. – skaz

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

Non sono sicuro al 100% qui, ma forse stai chiamando un'API che non esiste ancora?

Ad esempio, si sta tentando di effettuare una chiamata Android 2.2 su un telefono/emulatore che esegue una versione inferiore di Android (2.1, 1.6, 1.5)?