参考自:https://www.cnblogs.com/bigbensk/p/3631988.html
类型如下:
package com.test.dev;
public class LOGIN_INFO {
public SDK_SNTYPE msn_type;
public String msn_str;
}
package com.test.dev;
public enum SDK_SNTYPE {
SN_EXPLICIT(0),
SN_FILEPATH(1);
private int value;
SDK_SNTYPE (int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
bool ConvertJO2Info(JNIEnv * env, jobject jo, int& val)
{
do{
if(jo == NULL || env == NULL )
{
break;
}
jclass jCls = env->GetObjectClass(jo);
if(jCls == NULL)
{
break;
}
jfieldID jf_sn_type_id = env->GetFieldID(jcls, field_name, "Lcom/test/dev/SDK_SNTYPE;");
if(jf_sn_type_id == NULL )
{
break;
}
jobject jSnTypeObj = env->GetObjectField(jo, jf_sn_type_id);
if(jSnTypeObj == NULL )
{
break;
}
jclass jSnTypeCls = env->GetObjectClass(jSnTypeObj);
if(jSnTypeCls == NULL)
{
break;
}
jmethodID getVal = env->GetMethodID(jSnTypeCls, "getValue", "()I");
val = env->CallIntMethod(jSnTypeObj, getVal);
return true;
}while(false);
return false;
}