2012-02-13 9 views
10

Obtuve un método de Java que obtiene un String y devuelve boolean.JNI, método de llamada booleana

lo llamo desde JNI así:

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

me sale fatal de señal 11, ¿Alguna idea de lo que está mal en la sintaxis?

Respuesta

12

Mi firma Java debía devolver Boolean en lugar de boolean.

también

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

es necesario que haya Z en lugar de B.

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