android - Jfloat 到 Float

标签 android android-ndk

这是我在 Java 中的函数定义:

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

这是我在 CPP 中的定义

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

当我登录时:

我从 Java 发送:

125.278595 496.842102 1

在 C++ 中我收到:

3.274879 125.278595 1140353994

在 jfloat 到 float 或 jint 到 int 之间是否必须进行某种转换?

TIA!

最佳答案

您忘记了每个 JNI 函数都有的隐式 jobject/jclass 参数:

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

因此,您将“thiz”解释为“x”,将“x”解释为“y”,将“y”解释为“tap_count”。

关于android - Jfloat 到 Float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6308166/

相关文章:

没有 GUI 的 Android 应用程序

android - 如何使用 'CMakeLists.txt' 中的 add_library 将整个文件(.cpp、.h 等)包含在目录中

android - 如何使用 Android NDK 和 Gradle 构建单个 APK

android - Windows 上的 Hello-Jni,Android NDK - build-local.mk : No such file

android - kotlin中的vararg没用吗?

java - ListView getFirstVisiblePosition

Android TextView 没有正确包装它的文本

Android MediaMuxer 无法停止

Android NDK构建支持所有CPU架构的apk

android - android gradle plugin 1.4 beta ndk clang