我将设置数据转换为JNI并将数据导入Java有些困难。我该怎么办?请参考此代码,因为我有什么不对,我不知道。请帮我解决这个问题。
Student.java
public class MainActivity extends AppCompatActivity {
static {
System.loadLibrary("native-lib");
}
public static native Student getStudentAge();
protected Student student;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
student = getStudentAge();
Log.d("TAG_DATA", String.valueOf(student.getAge()));
}
}
MainActivity.java
JNIEXPORT jobject JNICALL
Java_com_example_helloJni_MainActivity_getStudentAge(JNIEnv *env, jclass type) {
jclass fStdClass = env->FindClass("com/example/helloJni/Student");
jobject nStdClass = env->AllocObject(fStdClass);
jmethodID methodId = env->GetMethodID(fStdClass, "setAge", "(I)V");
env->CallObjectMethod(nStdClass, methodId, 10);
return nStdClass;
}
的本机lib.cpp
JNI DETECTED ERROR IN APPLICATION: the return type of CallObjectMethodV does not match
错误:
{{1}}
答案 0 :(得分:1)
您需要使用CallVoidMethod,因为setAge返回void。