[英]int returned from android jni is the wrong value
我在android java中有一个int值约为100,我将其打印到日志中以确保。
当我从静态方法将其返回到C ++时,其值为1585156834
这是C ++代码
jint GameLayer::QueryBonesCollected()
{
jint jreturner;
jint returner;
JniMethodInfo methodInfo;
if (! JniHelper::getStaticMethodInfo(methodInfo, CLASS_NAME, "QueryCollectedBones", " ()I")){
return 0;
}
methodInfo.env->CallStaticIntMethod(methodInfo.classID, methodInfo.methodID,jreturner);
methodInfo.env->DeleteLocalRef(methodInfo.classID);
returner=jreturner;
return returner; }
和java方法:
public static int QueryCollectedBones()
{Log.v("keith", "BonesCollected=" + BonesCollected);
int returner=BonesCollected;
return returner;}
和java字段:public static int BonesCollected;
应该
jreturner = env->CallStaticIntMethod(methodInfo.classID, methodInfo.methodID);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.