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 アプリ の 研究所 アンドロイド ナビ