JNI,调用方法布尔 [英] JNI , call boolean method
问题描述
我有一个Java方法得到一个字符串,返回布尔
我把它从JNI是这样的:
jmethodID function2ID = env->的GetMethodID(
activityClass,
MyFuncName
(Ljava /朗/字符串;)B);
如果(function2ID == NULL)
LOG(找不到MyFuncName功能) jboolean IsAutoPlay = env-> CallBooleanMethod(
OBJ,
function2ID,
env-> NewStringUTF(名));
我得到致命信号11,
任何想法有什么错在语法?谢谢
答:
我的Java签名是返回布尔而不是布尔
也
jmethodID function2ID = env->的GetMethodID(
activityClass,
MyFuncName
(Ljava /朗/字符串;)B);
需要为Z的而不是将b
jmethodID function2ID = env->的GetMethodID(
activityClass,
MyFuncName
(Ljava /朗/字符串;)Z);
我的Java签名是返回布尔而不是布尔
也
jmethodID function2ID = env->的GetMethodID(
activityClass,
MyFuncName
(Ljava /朗/字符串;)B);
需要为Z的而不是将b
jmethodID function2ID = env->的GetMethodID(
activityClass,
MyFuncName
(Ljava /朗/字符串;)Z);
i got a java method that get a string and return bool
i call it from jni like this:
jmethodID function2ID = env->GetMethodID(
activityClass,
"MyFuncName",
"(Ljava/lang/String;)B");
if ( function2ID == null )
LOG("Could not find MyFuncName Function")
jboolean IsAutoPlay = env->CallBooleanMethod(
obj,
function2ID,
env->NewStringUTF(name));
I get Fatal Signal 11, Any idea what's wrong in the syntax ? Thanks
Answer: My Java signature was to return Boolean instead of boolean
also
jmethodID function2ID = env->GetMethodID(
activityClass,
"MyFuncName",
"(Ljava/lang/String;)B");
need to be Z instead of B
jmethodID function2ID = env->GetMethodID(
activityClass,
"MyFuncName",
"(Ljava/lang/String;)Z");
My Java signature was to return Boolean instead of boolean
also jmethodID function2ID = env->GetMethodID( activityClass, "MyFuncName", "(Ljava/lang/String;)B"); need to be Z instead of B
jmethodID function2ID = env->GetMethodID(
activityClass,
"MyFuncName",
"(Ljava/lang/String;)Z");
这篇关于JNI,调用方法布尔的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!