1
我试图访问Java对象内的Java对象。我看过Accessing a Java object in a Java object in C using JNI,但我的应用在GetObjectField
中仍然出现错误。JNI - GetObjectField类中的类失败
的错误是:
sart/tuntime/check_jni:.cc65] JNI DETECTED ERROR IN APPLICATION:
jfieldID my.package.name.SubObject my.package.name.MainObject.subObject
not valid for an object of class java.lang.Class<my.package.name.MainObject>
我的代码是:
MainObject
package my.package.name;
public class MainObject {
SubObject subObject= new SubObject();
}
子对象
package my.package.name;
public class SubObject {
String name;
}
JNI
void ReadJavaObject(JNIEnv * env, jobject mainObjectJava)
{
jclass cls = env->GetObjectClass(mainObjectJava);
jfieldID subObjectID = env->GetFieldID(cls, "subObject", "Lmy/package/name/SubObject;");
jobject subObjectJava= env->GetObjectField(cls, subObjectID);
//...Do something with subObjectJava
}
JNI调用'ReadJavaObject'在哪里? –
@SimonMarquis - 你是什么意思? –
我在引用代码,你实际上调用'xyz.ReadJavaObject(...)',但从来不知道,我已经添加了解决方案;) –