2010-08-24 57 views
1

我們編寫了一個Android應用程序,它將堆棧跟蹤發送到我們的服務器(如果有的話)。有時我們會得到奇怪的堆棧跟蹤,這些跟蹤似乎不是我們應用程序中的例外。例如:你如何理解stacktrace有異常的原因?


java.lang.NullPointerException 
at android.widget.FastScroller.scrollTo1(FastScroller.java:306) 
at android.widget.FastScroller.onTouchEvent(FastScroller.java:507) 
at android.widget.AbsListView.onTouchEvent(AbsListView.java:1894) 
at android.widget.ListView.onTouchEvent(ListView.java:3083) 
at android.view.View.dispatchTouchEvent(View.java:3386) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:831) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863) 
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1710) 
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1197) 
at android.app.Activity.dispatchTouchEvent(Activity.java:1993) 
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1694) 
at android.view.ViewRoot.handleMessage(ViewRoot.java:1525) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:123) 
at android.app.ActivityThread.main(ActivityThread.java:3952) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:521) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540) 
at dalvik.system.NativeStart.main(Native Method) 

沒有提到我們自己的類,只有Android的標準類。很明顯,當發生項目列表(ListView)滾動時會發生這種異常,但我甚至無法理解如何修復此錯誤。我無法重現此錯誤。當你遇到同樣的問題時,你通常會做什麼?有任何想法嗎?

+2

我的猜測在沒有很多證據的情況下被授予,是因爲您泄露了某個資源,或者正試圖在已銷燬的視圖上調用觸摸方法。 – Falmarri 2010-08-24 17:59:36

+0

您的異常上傳是否也會在Throwable的「原因」字段中發送異常?您的應用是否顯示與撥號相關的任何內容?你有什麼想法爲什麼ViewGroup.dispatchTouchEvent連續出現5次?你使用的是什麼版本的Android? – fadden 2010-08-24 18:16:08

回答

1

使用拇指快速滾動某些ListView時會出現問題。如果您將ListView設置爲啓用快速滾動,請確保適配器類實現SectionIndexer

+0

「附加到列表的適配器可能希望實現SectionIndexer,如果它希望顯示字母預覽並在列表的各個部分之間跳轉」。所以我沒有必要實現SectionIndexer,不是嗎? – rauch 2010-08-25 10:02:24

+1

無論如何,我會嘗試。 – plugmind 2010-08-27 07:39:58