开发者

Jfloat to Float

开发者 https://www.devze.com 2023-03-12 05:28 出处:网络
Here\'s my function definition in Java: public static native void ToucheBegan( float x, float y, int tapcount );

Here's my function definition in Java:

public static native void ToucheBegan( float x, float y, int tapcount );

And here's my definition in CPP

JNIEXPORT void JNICALL Java_com_android_templateApp_GL2View_ToucheBegan( JNIEnv *env, jfloat x, jfloat y, jint 开发者_开发技巧tap_count );

When I log:

From Java I send:

125.278595 496.842102 1

And In C++ I receive:

3.274879 125.278595 1140353994

Is there some sort of conversion that have to be done between a jfloat to float or jint to int?

TIA!


You forgot implicit jobject/jclass argument that every JNI function has:

void JNICALL Java_com_android_templateApp_GL2View_ToucheBegan( JNIEnv *env, jobject thiz, jfloat x, jfloat y, jint tap_count );

So you were interpreting 'thiz' as 'x', 'x' as 'y' and 'y' as 'tap_count'.


There isn't any special conversion required.

Check that your C++ logging is acting as anticipated. One way to do this is to assign known values to x,y, and tapcount within the C++ function and make sure they are being logged as expected.

0

精彩评论

暂无评论...
验证码 换一张
取 消