1,在你的调用的方法中写明
public static int count = 9; public native void accessStaticField();
2,编写头文件,
JNIEXPORT void JNICALL Java_com_XXX_XXX_XXX_accessStaticField(JNIEnv *, jobject);
3,编写C/C++方法
// 访问静态属性 extern "C" JNIEXPORT void JNICALL Java_com_XXX_XXX_XXX_accessStaticField(JNIEnv * env, jobject jobj){ //jclass jclass cls = env->GetObjectClass(jobj); // jfieldId jfieldID fid = env->GetStaticFieldID(cls,"count","I"); // GetStatic<Type>Field jint count = env->GetStaticIntField(cls,fid); count ++ ; // 修改 env->SetStaticIntField(cls,fid,count); }
4,调用的地方直接使用
Log.e("LOG","count修改前:"+XXX.count); XXX.accessStaticField(); Log.e("LOG","count修改后:"+XXX.count);