2010-11-08 13 views
5

Programowałem dla Androida z przyzwoitym sukcesem, ale zauważyłem, że kiedy dostaję NullPointerExceptions, ślad stosu jest bezwartościowy. Są one zawsze tego formatu:Android: Generic Null Pointer Wyjątki

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] 

Zazwyczaj stos ślady powiedzieć już gdzie kod wysadzili, ale zawsze wydają się najbardziej rodzajowe jeden możliwy. Czy brakuje mi czegoś oczywistego? Dzięki.

Odpowiedz

6

Jeśli korzystasz z Eclipse, spójrz na LogCat w perspektywie DDMS lub Debug. Wyświetli on ślad stosu samego wyjątku i kodu kodu, który spowodował.

+1

Dlaczego nie byłby wyświetlany wyjątek w widoku debugowania? wydaje się dziwne, że wybrał "złą" część stosu do pokazania. – skaz

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

nie jestem w 100% pewien, tutaj, ale może jesteś wywołanie API, które jeszcze nie istnieje?

Na przykład, czy próbujesz wykonać wywołanie Androida 2.2 na telefonie/emulatorze z niższą wersją Androida (2.1, 1.6, 1.5)?