2012-02-13 15 views
10

Ho ottenuto un metodo Java che ottiene un String e restituisce boolean.JNI, chiamata metodo booleano

Io la chiamo da JNI in questo modo:

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

ottengo Fatal segnale 11, Qualsiasi idea di cosa c'è di sbagliato nella sintassi?

risposta

12

La mia firma Java doveva restituire Boolean anziché boolean.

anche

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

deve essere Z anziché B.

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