java - JNI 函数是否可能返回整数或 boolean 值?

标签 java android c java-native-interface

JAVA代码

boolean b = invokeNativeFunction();
int i = invokeNativeFunction2();

C代码

jboolean Java_com_any_dom_Eservice_invokeNativeFunction(JNIEnv* env, jobject obj) {
    bool bb = 0;
    ...
    return // how can return 'bb' at the end of the function?
}

jint Java_com_any_dom_Eservice_invokeNativeFunction2(JNIEnv* env, jobject obj) {
    int rr = 0;
    ...
    return // how can return 'rr' at the end of the function?
}

JNI 函数是否可能返回整数或 boolean 值?如果是,我该怎么做?

最佳答案

可以,直接返回值即可。

JNIEXPORT jint JNICALL Java_com_example_demojni_Sample_intMethod(JNIEnv* env, jobject obj,
    jint value) {
    return value * value;
}

JNIEXPORT jboolean JNICALL Java_com_example_demojni_Sample_booleanMethod(JNIEnv* env,
    jobject obj, jboolean unsignedChar) {
    return !unsignedChar;
}

Java原始类型和原生类型之间存在映射关系,引用here .

关于java - JNI 函数是否可能返回整数或 boolean 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27925170/

相关文章:

java - 使用 firebase-mlkit 访问云视觉 api 时套接字关闭

Android 创建一个 "flat button"

android - 在 TextInputLayout 中找不到 setEndIconOnClickListener 方法

android - 在 Ubuntu 上设置 Android 主目录。这是多余的吗?

c - 无法返回双向链表

c - Strcpy 索引输出

java - 归并排序java实现错误

java - 延迟加载不适用于 Hibernate 中的@Formula

java - 如果未检测到 '@' 符号,则将错误消息打印到屏幕

c - 删除前面的空格的程序