在開發Android應用程序時,我經常遇到發生異常但無法通過堆棧追蹤的情況,因爲在此類時刻顯示的堆棧僅提及系統方法,而不是我的任何代碼行。例如,如果我erroneusly一個不正確的字符串傳遞傳遞給Float.parseFloat,我得到了這樣的事情:在調試Android應用程序時在Eclipse中進行堆棧分析
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和包含調用的方法。
如果您將錯誤的參數傳遞給系統函數,堆棧跟蹤中的一行應該是您的調用,指向您的文件。 – 2012-04-19 16:48:00
我有同樣的問題,你能解決嗎? – tnacho 2012-12-12 22:50:24