代码之家  ›  专栏  ›  技术社区  ›  synic

arrayAdapter和listView-arrayIndexOutOfBoundsException

  •  5
  • synic  · 技术社区  · 14 年前

    我真的希望有人能帮我解决这个问题。我一直在坚持这一点。有时,当有人使用我的应用程序时,它会强制关闭,但出现以下例外:

    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)
    

    然而,我不明白为什么。这是相对罕见的,不可复制的,stacktrace是完全无用的,因为它不包括我的任何代码。

    这是Android本身的一个缺陷吗?

    2 回复  |  直到 12 年前
        1
  •  11
  •   Romain Guy    14 年前

    你在运行什么版本的Android?据我所知,您的适配器正在从getViewTypeCount()返回错误的计数(或者您正在动态更改视图类型计数,这是一个很大的错误。)

        2
  •  5
  •   Community Egal    7 年前

    除了什么 Romain 也就是说,最大的视图类型比视图类型计数小似乎很重要。

    我定义了两种视图类型(出于任何原因) 1 2 归还 在里面 getViewTypeCount() 这也给了我同样的例外。将类型重新索引到 0 解决了问题。