游戏人生

不积跬步,无以至千里;不积小流,无以成江海。

导航

[工作积累] jboolean is neither JNI_TRUE nor JNI_FALSE

jboolean result = env->CallBooleanMethod(ShopDataAndroid.IAPBridge_Object, ShopDataAndroid.IAPBridge_getProductList);
return (result == JNI_TRUE) ? 0 : -1; // this is not gonna work

http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/types.html#wp9502

因为JNI_TRUE (1) 和JNI_FALSE (0) 是JNI定义的宏, 所以按道理讲, 返回值应该是JNI_TRUE或者JNI_FALSE才对. 然而实际在android上返回值可能不是1, 这种行为非常令人不爽.

目前只能转换为native bool或者用result != JNI_FALSE

posted on 2015-07-23 10:46  crazii  阅读(1034)  评论(0编辑  收藏  举报