Can you use multitouch by XOOM?

XOOM canceled when multitouch by the test application program.

I run the TouchesTest of tests app on XOOM, it works well.
The cocos2d-x’s version is 0.8.5.

Which version of cocos2d-x producted the problom on your XOOM?

The cocos2d-x’s version is 0.8.5.
Android OS version is 3.1.
Four fingers were touch heavily.

What approach you did to test multitouch?
Run TouchesTest or …?

You can turn on the debug flag in Cocos2dxGLSurfaceview.java to watch the
touch messages.

BTW: We have no device that installed 3.1.

I turned on the debug flag.
Once the multi-touch test application was terminated.
Message is not.
Then, ndk is android-ndk-I use r5c.

Hi! Where can I get the XOOM 3.1 firmware? Any official download url from Motorola?

I took advantage of the update of the terminal.
So do not know the URL of the firmware.

I think that I have the same problem with Samsung Galaxy Tab 3.1.

If I do multitouch (2 fingers in main menu, outside of menu items, in TestsDemo - cocos2d-1.0.1-x-0.9.1), application throw with exception.

E/AndroidRuntime(17520): java.lang.IllegalArgumentException: pointerIndex out of range
E/AndroidRuntime(17520): at android.view.MotionEvent.nativeGetAxisValue(Native Method)
E/AndroidRuntime(17520): at android.view.MotionEvent.getX(MotionEvent.java:1549)
E/AndroidRuntime(17520): at org.cocos2dx.lib.Cocos2dxGLSurfaceView.onTouchEvent(Cocos2dxGLSurfaceView.java:317)
E/AndroidRuntime(17520): at android.view.View.dispatchTouchEvent(View.java:4621)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(17520): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1863)
E/AndroidRuntime(17520): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1287)
E/AndroidRuntime(17520): at android.app.Activity.dispatchTouchEvent(Activity.java:2309)
E/AndroidRuntime(17520): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1836)
E/AndroidRuntime(17520): at android.view.View.dispatchPointerEvent(View.java:4689)
E/AndroidRuntime(17520): at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2365)
E/AndroidRuntime(17520): at android.view.ViewRoot.handleMessage(ViewRoot.java:2034)
E/AndroidRuntime(17520): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(17520): at android.os.Looper.loop(Looper.java:132)
E/AndroidRuntime(17520): at android.app.ActivityThread.main(ActivityThread.java:4028)
E/AndroidRuntime(17520): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(17520): at java.lang.reflect.Method.invoke(Method.java:491)
E/AndroidRuntime(17520): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
E/AndroidRuntime(17520): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
E/AndroidRuntime(17520): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 291): Force finishing activity org.cocos2dx.tests/.TestsDemo

Its issue in Android 3.1.
http://code.google.com/p/android/issues/detail?id=16836

Replacing
event.getPointerId(0)
by
event.getAction() >> MotionEvent.ACTION_POINTER_ID_SHIFT;

fix the problem for me.

Is this problem already fixed?

thx :slight_smile:

Milda Genius wrote:

I think that I have the same problem with Samsung Galaxy Tab 3.1.
>
If I do multitouch (2 fingers in main menu, outside of menu items, in TestsDemo - cocos2d-1.0.1-x-0.9.1), application throw with exception.
>
E/AndroidRuntime(17520): java.lang.IllegalArgumentException: pointerIndex out of range
E/AndroidRuntime(17520): at android.view.MotionEvent.nativeGetAxisValue(Native Method)
E/AndroidRuntime(17520): at android.view.MotionEvent.getX(MotionEvent.java:1549)
E/AndroidRuntime(17520): at org.cocos2dx.lib.Cocos2dxGLSurfaceView.onTouchEvent(Cocos2dxGLSurfaceView.java:317)
E/AndroidRuntime(17520): at android.view.View.dispatchTouchEvent(View.java:4621)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(17520): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(17520): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1863)
E/AndroidRuntime(17520): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1287)
E/AndroidRuntime(17520): at android.app.Activity.dispatchTouchEvent(Activity.java:2309)
E/AndroidRuntime(17520): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1836)
E/AndroidRuntime(17520): at android.view.View.dispatchPointerEvent(View.java:4689)
E/AndroidRuntime(17520): at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2365)
E/AndroidRuntime(17520): at android.view.ViewRoot.handleMessage(ViewRoot.java:2034)
E/AndroidRuntime(17520): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(17520): at android.os.Looper.loop(Looper.java:132)
E/AndroidRuntime(17520): at android.app.ActivityThread.main(ActivityThread.java:4028)
E/AndroidRuntime(17520): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(17520): at java.lang.reflect.Method.invoke(Method.java:491)
E/AndroidRuntime(17520): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
E/AndroidRuntime(17520): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
E/AndroidRuntime(17520): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 291): Force finishing activity org.cocos2dx.tests/.TestsDemo
>
Its issue in Android 3.1.
http://code.google.com/p/android/issues/detail?id=16836
>
Replacing
event.getPointerId(0)
by
event.getAction() >> MotionEvent.ACTION_POINTER_ID_SHIFT;
>
fix the problem for me.

I solved.

Replacing
event.getPointerId(0)
by
final int indexPointerDown = (event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
final int idPointerDown = event.getPointerId(indexPointerDown);
final float xPointerDown = event.getX(indexPointerDown);
final float yPointerDown = event.getY(indexPointerDown);

queueEvent(new Runnable() {
@Override
public void run() {
mRenderer.handleActionDown(idPointerDown, xPointerDown, yPointerDown);
}
});
break;

Hello

i applied this fix , but i am still having this bug only on XOOM.

i am looking how nvidia in their sdk solve it because the multi touch work like a charm on Xoom tablet.

Regards
david

10-20 17:45:11.230: E/AndroidRuntime(11710): java.lang.IllegalArgumentException: pointerIndex out of range
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.MotionEvent.nativeGetAxisValue(Native Method)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.MotionEvent.getX(MotionEvent.java:1549)
10-20 17:45:11.230: E/AndroidRuntime(11710): at org.cocos2dx.lib.Cocos2dxGLSurfaceView.onTouchEvent(Cocos2dxGLSurfaceView.java:322)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.View.dispatchTouchEvent(View.java:4609)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
10-20 17:45:11.230: E/AndroidRuntime(11710): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1710)
10-20 17:45:11.230: E/AndroidRuntime(11710): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1265)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.app.Activity.dispatchTouchEvent(Activity.java:2309)
10-20 17:45:11.230: E/AndroidRuntime(11710): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1683)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.View.dispatchPointerEvent(View.java:4677)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2348)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.view.ViewRoot.handleMessage(ViewRoot.java:2017)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.os.Handler.dispatchMessage(Handler.java:99)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.os.Looper.loop(Looper.java:132)
10-20 17:45:11.230: E/AndroidRuntime(11710): at android.app.ActivityThread.main(ActivityThread.java:4025)
10-20 17:45:11.230: E/AndroidRuntime(11710): at java.lang.reflect.Method.invokeNative(Native Method)
10-20 17:45:11.230: E/AndroidRuntime(11710): at java.lang.reflect.Method.invoke(Method.java:491)
10-20 17:45:11.230: E/AndroidRuntime(11710): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
10-20 17:45:11.230: E/AndroidRuntime(11710): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
10-20 17:45:11.230: E/AndroidRuntime(11710): at dalvik.system.NativeStart.main(Native Method)

I think I have solved it by #755.
You can get lasted released version 0.9.2 or git, and have a try.
Please let me know the result.
Thank you.

Hello

it works very well problem solved !
well done and thank you for your quick reponse as always

david

Bad notes - how to delete it?