从android jni返回的int是错误的值

时间:2014-08-03 02:01:03

标签: java-native-interface int return

我在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;

1 个答案:

答案 0 :(得分:0)

应该是

jreturner = env->CallStaticIntMethod(methodInfo.classID, methodInfo.methodID);