我有一个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);
![NDK JNI的使用方法](https://p.xsw88.cn/allimgs/daicuo/20230907/6027.png)
解决方案
我的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");
相关推荐
最新文章