我一直在为Android编程取得了不错的成功,但有一点我注意到,当我得到NullPointerExceptions时,堆栈跟踪毫无价值。它们始终采用以下格式:
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]
通常堆栈跟踪告诉你代码爆炸的位置,但我似乎总是得到最通用的代码。我错过了一些明显的东西吗感谢。
答案 0 :(得分:6)
如果您使用的是Eclipse,请查看DDMS或Debug透视图中的LogCat。它将向您显示异常本身的堆栈跟踪以及导致它的代码的跟踪。
答案 1 :(得分:0)
NativeStart.main(String[]) line: not available [native method]
我不是100%肯定在这里,但也许你正在调用一个尚不存在的API?
例如,您是否尝试在运行较低版本Android(2.1,1.6,1.5)的手机/模拟器上进行Android 2.2调用?