ItemizedOverlay で ArrayIndexOutOfBoundsException が起こる問題
MapView の上にアイコンを表示するような場合は
ItemizedOverlay を使うのですが、
たまーに ArrayIndexOutOfBoundsException が発生する場合があります。

これ、原因不明でけっこう困りました(=_=;)
 
エラー内容は下記の通り。
06-01 01:14:59.425: WARN/dalvikvm(25401): threadid=3: thread exiting with uncaught exception (group=0x40033160)
06-01 01:14:59.425: ERROR/AndroidRuntime(25401): Uncaught handler: thread main exiting due to uncaught exception
06-01 01:14:59.435: ERROR/AndroidRuntime(25401): java.lang.ArrayIndexOutOfBoundsException
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.google.android.maps.ItemizedOverlay.maskHelper(ItemizedOverlay.java:562)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.google.android.maps.ItemizedOverlay.setFocus(ItemizedOverlay.java:365)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.google.android.maps.ItemizedOverlay.focus(ItemizedOverlay.java:539)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.google.android.maps.ItemizedOverlay.onTap(ItemizedOverlay.java:455)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.google.android.maps.OverlayBundle.onTap(OverlayBundle.java:83)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.google.android.maps.MapView$1.onSingleTapUp(MapView.java:347)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.google.android.maps.GestureDetector.onTouchEvent(GestureDetector.java:533)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.google.android.maps.MapView.onTouchEvent(MapView.java:647)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at android.view.View.dispatchTouchEvent(View.java:3742)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:949)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:981)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:981)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:981)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:981)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:981)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at android.app.Activity.dispatchTouchEvent(Activity.java:2064)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at android.os.Looper.loop(Looper.java:123)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at android.app.ActivityThread.main(ActivityThread.java:4370)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at java.lang.reflect.Method.invokeNative(Native Method)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at java.lang.reflect.Method.invoke(Method.java:521)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-01 01:14:59.435: ERROR/AndroidRuntime(25401):     at dalvik.system.NativeStart.main(Native Method)
06-01 01:14:59.445: ERROR/SemcCheckin(25401): Get crash dump level : java.io.FileNotFoundException: /data/semc-checkin/crashdump
06-01 01:14:59.445: WARN/ActivityManager(1142): Unable to start service Intent { act=com.sonyericsson.android.jcrashcatcher.action.BUGREPORT_AUTO cmp=com.sonyericsson.android.jcrashcatcher/.JCrashCatcherService (has extras) }: not found
でも解決はあっさりだったりして。
populate() の前に setLastFocusedIndex(-1) コールするだけでいいみたいです。
参考にさせてもらったサイト。
・とある下っ端プログラマーのおぼえがき
・明日に向かって昇龍拳
 
 
▽ItemizedOverlay で ArrayIndexOutOfBoundsException が起こる問題 のキーワード
▽次の記事、前の記事
Gamification ( ゲーミフィケーション )のメモ | アプリを外部メディア ( SDカード ) への インストール できるようにする
▽ItemizedOverlay で ArrayIndexOutOfBoundsException が起こる問題 にトラックバックする
ItemizedOverlay で ArrayIndexOutOfBoundsException が起こる問題のトラックバックURL:
http://chu3.xsrv.jp/mt5/mt-tb.cgi/831
今日のキーワード
当サイトのRSS
カテゴリー
スポンサード リンク
 
新着記事
月別アーカイブ
オススメ書籍
【中級者必携の3冊】
目的から実現方法を探すいわゆる逆引き本。ネットで探してた情報が1冊にまとまっている感じです。
こちらも逆引き本。しかも情報量が多くて分厚い辞書的な1冊。必ず手元に置いておきたい1冊です。
様々なUIテクニックが載っている1冊。レイアウト関係でここまで詳しい本は他にありません。UIに強くなりたいなら必須。
 
Copyright (C) 2012 All Rights Reserved Android アプリ の 研究所 アンドロイド ナビ