【发布时间】:2015-11-16 16:40:16
【问题描述】:
我一直在尝试从 jclass 对象中打印出类名。
jmethodID mid_getName = env->GetMethodID(point_class, "getName", "()Ljava/lang/String;");
point_class 对象不为 NULL。
我使用了来自Can I know the name of the class that calls a JNI C method? 和Class name from jclass in JNI 的这个sn-p
另一方面,我正在为 android 进行 JNI 编程,当我想在本机端创建 Java 对象时,我的 FindClass 方法返回 NULL。没有 proguard 问题或其他任何问题。
代码:
JNIEXPORT void JNICALL long_JNI_method_name (JNIEnv * env, jobject object, jlong image, jint screenHeight, jint screenWidth) {
jclass point_class = env->GetObjectClass(object);
jmethodID mid_getName = env->GetMethodID(point_class, "getName", "()Ljava/lang/String;");
...
我更改了 JNI 方法名称,因为其中包含包名称(我工作的地方)。
【问题讨论】:
-
发布所有你的代码。你漏掉了什么。
-
贴出源代码。
标签: java android c++ java-native-interface