I've been getting error reports from users of the Note 3 that boil down to the following:
*java.lang.IllegalArgumentException: R array length must be 3 or 4* *at android.hardware.SensorManager.getRotationMatrixFromVector(SensorManager.java:1336) * This function, *getRotationMatrixFromVector()*, is documented as a "Helper function to convert a rotation vector to a rotation matrix. Given a rotation vector (presumably from a ROTATION_VECTOR sensor)". My typical call to this function looks like this: *SensorManager.getRotationMatrixFromVector(R, rotationVector);* Where the *rotationVector *comes from the hardware accelerometer and gyroscope, and (despite the error message about *R*) it's with this parameter where the problem lies. It's directly passed from *android.hardware.SensorEventListener.onSensorChanged(SensorEvent event)* for a *Sensor.TYPE_ROTATION_VECTOR* event. The *event *parameter there has a *values *property that is passed as the *rotationVector *in the previous call. And according to the docs at http://developer.android.com/reference/android/hardware/SensorEvent.html#values, this array can legitimately have up to 5 elements - moreover, in Android 4.3, it *should *have all 5. However, passing an array of length 5 causes the Note 3 to crash on the aforementioned *IllegalArgumentException*; it seems to expect 4 elements at most. So, here's the summary: Android 4.3 passes an array with 5 elements to this hardware event, and the Note 3 throws an exception when passed that same array to the system-defined helper function for that event. This behavior does not happen on the other 4.3 devices I have at hand (Galaxy Nexus and Nexus 7); it appears to be a basic flaw in the Samsung implementation of 4.3. And I know, this all looks like minutiae of a hyper-specific issue - but believe me, it's likely to be encountered by any app using the device's motion sensors. A Google search for *getRotationMatrixFromVector *returns 51,400 results. Any comment from Samsung on this would be most welcome, if unlikely. String -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

