【发布时间】:2017-02-27 06:09:35
【问题描述】:
我在将数据设置为 JNI 并将数据导入 Java 时遇到了一些困难。我该怎么办?在这里请参考这段代码,因为我不知道我有什么问题。请帮我解决这个问题。
Student.java
public class Student {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
MainActivity.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()));
}
}
native-lib.cpp
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;
}
错误:
JNI DETECTED ERROR IN APPLICATION: the return type of CallObjectMethodV does not match
【问题讨论】:
-
请将您难以理解的问题翻译成英文。
-
@EJP 对不起我的英语不好。
标签: android c++ android-ndk java-native-interface