2012-02-13 153 views
10

我得到一個Java方法,得到String並返回booleanJNI,調用布爾方法

我把它從JNI是這樣的:

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)); 

我得到致命信號11,任何想法是錯的語法?

回答

12

我的Java簽名是返回Boolean而不是boolean

而且

jmethodID function2ID = env->GetMethodID(
        activityClass, 
        "MyFuncName", 
        "(Ljava/lang/String;)B"); 

必須Z而不是B

jmethodID function2ID = env->GetMethodID(
        activityClass, 
        "MyFuncName", 
        "(Ljava/lang/String;)Z");