【发布时间】:2012-03-25 10:25:44
【问题描述】:
有人测试 Android 应用程序向我们提交了如下所示的堆栈跟踪:
Thread [<21> Thread-31] (Suspended (exception SQLiteException))
FooClass.bar(Foo2Class) line: 198
它指向的代码行与 SQLite 无关(它不是 Android 类,它是我的代码)。如果你想知道,它指向的代码行是这样的:
if (s_arrayList.contains(foo2))
所以我能想象到的唯一异常是 NullPointer...绝对不是 SQLite 异常。
我的主要问题是:“暂停(X 例外)”的真正含义是什么?如果异常发生在不同的线程上,为什么 Android 会报告此堆栈跟踪?
更新:
我认为这个问题与 Eclipse 有关,它在检测到异常时暂停了线程。这仍然给我留下了没有答案的问题,这就是为什么 Eclipse 在这个地方暂停了线程。我发现了一个相关的问题,它讨论了 Eclipse 的这个怪癖。您可以在此处阅读更多信息:
Eclipse Android Debugger - Where in my code did I cause the exception?
【问题讨论】:
-
可能s_arrayList的类型和foo2的类型不匹配?
-
用户可以有不同版本的应用吗?
-
类型是对的,我很确定app的版本是一样的。真正的困惑是为什么我会看到 SQLiteException,而这行代码与 SQL 无关。
-
你能发布完整的堆栈跟踪吗??
-
好的,这是完整的堆栈跟踪:线程 [ Thread-31](暂停(异常 SQLiteException)) AdReport2.add(AdService2) 行:198 AdReport2.requestCompleted(AdService2) 行:314 AdMaxPosition.fetchAd(NexageContext, Activity, boolean) 行:131 NexageAdFetcher$FetchThread.run() 行:456
标签: android