在开发Android应用程序时,时不时会遇到异常发生但无法通过堆栈追溯的情况,因为此时显示的堆栈仅提及系统方法,而没有提及我的任何代码行。例如,如果我错误地将不正确的字符串传递给 Float.parseFloat,我会得到如下信息:
Thread [<1> main] (Suspended)
LoadedApk$ReceiverDispatcher$Args.run() line: 710
ActivityThread$H(Handler).handleCallback(Message) line: 587
ActivityThread$H(Handler).dispatchMessage(Message) line: 92
Looper.loop() line: 123
ActivityThread.main(String[]) line: 3729
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 507
ZygoteInit$MethodAndArgsCaller.run() line: 874
ZygoteInit.main(String[]) line: 632
NativeStart.main(String[]) line: not available [native method]
还有这个:
Thread [<1> main] (Suspended (exception RuntimeException))
LoadedApk$ReceiverDispatcher$Args.run() line: 722
ActivityThread$H(Handler).handleCallback(Message) line: 587
ActivityThread$H(Handler).dispatchMessage(Message) line: 92
Looper.loop() line: 123
ActivityThread.main(String[]) line: 3729
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 507
ZygoteInit$MethodAndArgsCaller.run() line: 874
ZygoteInit.main(String[]) line: 632
NativeStart.main(String[]) line: not available [native method]
问题是 - 我如何查明导致问题的代码行?在不正确使用 parseFloat 的情况下,我希望看到堆栈中提到 parseFloat 以及包含调用的方法。