-1
私はJNIにセットされたデータにいくつかの困難があり、Javaにデータを取得しています。私はどうすればいいですか?ここで私は何が間違っているかわからないので、このコードを参照してください。この問題のために私を助けてください。
Student.java
JNIにデータを設定して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()));
}
}
ネイティブ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
@EJP私の悪い英語のために申し訳ありません。 –