bool java_platform::isMusicEnabled(){
#if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
JniMethodInfo t;
log("class_name %s ",jni_className);
if (JniHelper::getStaticMethodInfo(t,jni_className,"isMusicEnabled",jni_signature_format(jni_bool,nullptr))) {
return t.env->CallStaticBooleanMethod(t.classID,t.methodID);
}
#endif /*CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID*/
return false;
}
04-20 15:38:32.845 5153-5169/? D/cocos2d-x debug info﹕ class_name org/cocos2dx/cpp/AppActivity
04-20 15:38:32.845 5153-5169/? D/cocos2d-x debug info﹕ jni_signature => ()Z
04-20 15:38:35.353 5153-5169/? D/cocos2d-x debug info﹕ class_name org/cocos2dx/cpp/AppActivity
04-20 15:38:35.353 5153-5169/? D/cocos2d-x debug info﹕ jni_signature => ()Z
04-20 15:38:36.236 5153-5169/? D/cocos2d-x debug info﹕ class_name org/cocos2dx/cpp/AppActivity
04-20 15:38:36.236 5153-5169/? D/cocos2d-x debug info﹕ jni_signature => ()Z
04-20 15:38:37.079 5153-5169/? D/cocos2d-x debug info﹕ class_name org/cocos2dx/cpp/AppActivity
04-20 15:38:37.079 5153-5169/? D/cocos2d-x debug info﹕ jni_signature => ()Z
04-20 15:38:37.079 5153-5169/? W/dalvikvm﹕ Bogus method descriptor: x/cpp/AppActivity;
04-20 15:38:37.079 5153-5169/? E/JniHelper﹕ Failed to find static method id of isMusicEnabled
JniHelper我已经用了很长时间了,不过一直没有关心过一些偶发事件的问题,今天迭代框架之后测试的时候发现,多次调用JNI接口小概率就出现,method descriptor 被截断的问题
如上图的输出,我传入的class_name和signature都没有问题,但连续触发之后竟然有一次出现Bogus method descriptor,求解这个是为什么,虽然不影响正常的发布,不过这些始终是个隐患,求高手