monaka android memo

Androidの勉強中!調べたことを忘れないためのブログです!

pointerIndex out of range が発生? マルチタップエラー

ブログ始めたら、まずこの事について書きたかった!

 

「pointerIndex out of range」この例外について調べてここにたどり着いた人は、Android4.0以降で開発していて、マルチタップ関係の処理で発生したんじゃないかなと思う。

 

ていうかボクがそうでした(´・ω・`)

 

まずマルチタップを検出しようとしたら、ScaleGestureを使うか、MotionEventから「MotionEvent.getX(0)」とかで指ごとの座標を取得する必要があると思う。

 

だけどAndroid4.0の時点でマルチタップを検出する時、稀に「pointerIndex out of range」が発生して、アプリが強制終了する。

 

調査した結果、Android4.0ではマルチタップの検出に不具合があるらしい・・・

 

まずこのURL

http://freesoftking.blog52.fc2.com/blog-entry-309.html

この記事は、「GalaxyNexusに不具合」となっているけど、結局はAndroid4.0の不具合という記事。

SDKの不具合だと自分はまだ知識不足・・・

 

なので解決方法がわからないのでAndroid-SDK-Japanへ助けを求めました。

質問した場所はここ。

https://groups.google.com/forum/?hl=ja&fromgroups#!topic/android-sdk-japan/JVlYcLbUSXM

そして有山さんという偉大なお方が、原因を発見してくれました!

そしてさらに、AOSPへパッチも提出してくれるという手際のよさ・・・!

 

AOSPへ提出したパッチが承認されれば、「pointerIndex out of range」は発生しなくなると思います。

早く承認してくれええ!

マルチタップが使えないスマホとか、悲しすぎるよ(´-ω-`)