-
-
[求助]JNI中实现Java反射问题
-
发表于:
2015-1-11 17:42
12083
-
要实现的代码
Class obj_class = Class.forName(class_name);
Method method = obj_class.getMethod(method_name,pareTyple);
return method.invoke(null, pareVaules);
已写的
jclass context = env->FindClass("java/lang/Class");
jmethodID forName_func = env->GetStaticMethodID(context,"forName","(Ljava/lang/String;)Ljava/lang/Class;");
jclass class_obj =(jclass)env->CallStaticObjectMethod(context, forName_func,class_name);
jmethodID getClass_func = env->GetMethodID(class_obj,"getClass","()Ljava/lang/Class;");
jclass class_java =(jclass)env->CallObjectMethod(class_obj,getClass_func);
jmethodID getMethod_func = env->GetMethodID(class_java,"getMethod","(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;");
jclass method_obj =(jclass)env->CallObjectMethod(class_java, getMethod_func,method_name,pareTyple);
jmethodID invoke_func = env->GetMethodID(method_obj,"invoke","(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;");
jclass invoke_obj =(jclass)env->CallObjectMethod(method_obj,invoke_func,NULL,pareVaules);
会提示Method找不到错误。检查了很久了,请知道的大牛指点下 thx!
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法