我在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;
答案 0 :(得分:0)
应该是
jreturner = env->CallStaticIntMethod(methodInfo.classID, methodInfo.methodID);