有人測試Android應用程序提交一個堆棧跟蹤我們,看起來像這樣:Android「的暫停(例外X)」堆棧跟蹤
Thread [<21> Thread-31] (Suspended (exception SQLiteException))
FooClass.bar(Foo2Class) line: 198
的代碼行它指向的是不相關的SQLite的(這是不是Android類,它是我的代碼)。如果你想知道,代碼它指向的行看起來是這樣的:
if (s_arrayList.contains(foo2))
所以我能想象這裏發生的一切,唯一的例外是一個空指針......絕對不是一個SQLite例外。
我的主要問題是:「暫停(異常X)」是什麼意思?如果異常發生在另一個線程上,爲什麼Android會報告這個堆棧跟蹤?
更新:
我認爲這個問題與Eclipse的,當它檢測到一個異常,暫停線程做。這仍然沒有回答我的問題,這就是爲什麼Eclipse正好在這個地方掛了這個線程。我發現了一個相關的問題,它討論了這個Eclipse的怪癖。你可以閱讀更多關於它在這裏:
Eclipse Android Debugger - Where in my code did I cause the exception?
也許s_arrayList的類型與foo2的類型不匹配? – bbedward 2012-03-07 21:17:51
用戶可以有不同版本的應用程序嗎? – 2012-03-07 21:56:23
該類型是正確的,我敢肯定,應用程序的版本是相同的。真正的困惑是爲什麼我看到一個SQLiteException,當這行代碼與SQL無關時。 – Otto 2012-03-08 17:10:09