2010-06-10 18 views
5

मुझे उम्मीद है कि कोई मुझे इस के साथ मेरी मदद कर सकता है। मैं हमेशा इसके लिए अटक गया हूँ। कभी कभी, जब कोई मेरे एप्लिकेशन का उपयोग करने की है, यह इस अपवाद के साथ निकट के लिए मजबूर करेंगे:ऐरेएडाप्टर और सूची दृश्य - ArrayIndexOutOfBoundsException

java.lang.ArrayIndexOutOfBoundsException 
    at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:3572) 
    at android.widget.AbsListView.trackMotionScroll(AbsListView.java:2487) 
    at android.widget.AbsListView.onTouchEvent(AbsListView.java:2001) 
    at android.widget.ListView.onTouchEvent(ListView.java:3234) 
    at android.view.View.dispatchTouchEvent(View.java:3709) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:874) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924) 
    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1695) 
    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1116) 
    at android.app.Activity.dispatchTouchEvent(Activity.java:2068) 
    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1679) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924) 
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924) 
    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1695) 
    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1116) 
    at android.app.Activity.dispatchTouchEvent(Activity.java:2068) 
    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1679) 
    at android.view.ViewRoot.handleMessage(ViewRoot.java:1697) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:123) 
    at android.app.ActivityThread.main(ActivityThread.java:4568) 
    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:860) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
    at dalvik.system.NativeStart.main(Native Method) 

हालांकि, मैं क्यों समझ नहीं कर सकते हैं। यह अपेक्षाकृत दुर्लभ, गैर-पुनरुत्पादनीय है, और स्टैकट्रैक पूरी तरह से अनुपयोगी है क्योंकि इसमें मेरा कोई भी कोड शामिल नहीं है।

क्या यह एंड्रॉइड में ही एक बग है?

+0

शायद नहीं। अपने ListView एडाप्टर के लिए कोड पोस्ट करें। और क्या आपके एडाप्टर में एक संग्रह होता है जिसे आप ऐप में कहीं और संशोधित कर सकते हैं? –

उत्तर

11

एंड्रॉइड का कौन सा संस्करण आप चल रहे हैं? मैं क्या बता सकते हैं अपने एडाप्टर getViewTypeCount (से गलत गिनती) लौटने से (या आप दृश्य प्रकार गतिशील गिनती जो एक बड़ी गलती है बदल रहे हैं।)

+0

यह सुनिश्चित नहीं है कि यह विशेष अपवाद किस संस्करण से आया था, लेकिन मैंने 2.1 पर यह मेरे साथ किया है। मैं getViewTypeCount() या getItemViewType() को ओवरराइड नहीं कर रहा हूं, इसलिए मुझे यकीन नहीं है कि यह कैसे हो सकता है – synic

+0

दरअसल, मैं गलत था। मैं बेवकूफ़ हूँ। मैं उन्हें ओवरराइड कर रहा था, और गलत दृश्य प्रकार गिनती लौट रहा था। धन्यवाद – synic

+1

@ सिंहासिक: आप अकेले नहीं हैं जिन्होंने यह किया ...... * argh! – Bondax

5

क्या Romain कहा करने के लिए इसके अलावा, यह है कि महत्वपूर्ण हो रहा है सबसे बड़ा दृश्य प्रकार दृश्य प्रकार गणना से छोटा है।

मैं 1 और 2 के साथ परिभाषित (जो भी कारण के लिए) दो दृश्य प्रकार था और getViewTypeCount() जो मुझे उपर दिए गए अपवाद दिया 2 लौट आए। 0 और 1 पर प्रकारों को फिर से अनुक्रमणित करने से समस्या ठीक हुई।

+0

आप एक जीवन बचतकर्ता हैं! मुझे नहीं पता था कि सूचकांक स्थिरांक के लिए उपयोग किया जाता है क्योंकि दृश्य प्रकार इसका कारण बन सकता है। – ebernie

संबंधित मुद्दे