2010-08-24 3 views
1

Nous avons écrit une application Android qui envoie des traces de pile à notre serveur, le cas échéant. Parfois, nous obtenons des traces de pile étranges qui ne semblent pas être une exception de notre application. Par exemple:Comment comprenez-vous la cause de l'exception ayant 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) 

Il n'y a aucune mention de nos propres classes, seulement les classes standard d'Android. Il est évident que cette exception a lieu lors du défilement de la liste des éléments (ListView), mais je ne peux même pas comprendre comment je peux corriger ce bug. Je ne peux pas reproduire ce bug. Que faites-vous habituellement lorsque vous rencontrez le même problème? Des idées?

+2

Ma conjecture, accordée sans beaucoup de preuves, est que vous avez fui une ressource, ou que vous essayez d'appeler des méthodes tactiles sur une vue qui a été détruite. – Falmarri

+0

Est-ce que le téléchargement de votre exception envoie également l'exception dans le champ "cause" du Throwable? Votre application affiche-t-elle des informations relatives à la numérotation? Avez-vous une idée de la raison pour laquelle ViewGroup.dispatchTouchEvent apparaît 5 fois de suite? Quelle version d'Android utilisez-vous? – fadden

Répondre

1

Il y a quelque chose qui ne va pas avec le défilement rapide de certains ListView en utilisant un pouce. Si vous activez le défilement rapide de votre ListView, assurez-vous que la classe d'adaptateur implémente SectionIndexer.

+0

"L'adaptateur attaché à la liste peut vouloir implémenter SectionIndexer s'il souhaite afficher l'aperçu de l'alphabet et sauter entre les sections de la liste". Donc je n'ai pas besoin d'implémenter SectionIndexer, n'est-ce pas? – rauch

+1

Je voudrais essayer quand même. – plugmind