Android: универсальные исключения нулевого указателя - PullRequest
5 голосов
/ 09 ноября 2010

Я программировал для Android с приличным успехом, но я заметил одну вещь: когда я получаю исключения NullPointerException, трассировка стека ничего не стоит. Они всегда имеют такой формат:

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]  

Обычно трассировки стека говорят вам, где код взорвался, но я всегда, кажется, получаю наиболее общий из возможных. Я что-то упускаю из виду? Спасибо.

Ответы [ 2 ]

6 голосов
/ 09 ноября 2010

Если вы используете Eclipse, посмотрите на LogCat в перспективе DDMS или Debug.Он покажет вам трассировку стека самого исключения и кода, вызвавшего его.

0 голосов
/ 09 ноября 2010
NativeStart.main(String[]) line: not available [native method]  

Я не уверен на 100%, но, возможно, вы вызываете API, который еще не существует?

Например, вы пытаетесь совершить вызов Android 2.2 на телефоне?/ эмулятор, который работает под управлением более низкой версии Android (2.1, 1.6, 1.5)?

...