gpt4 book ai didi

android - 如何使用 JNI 将数据传递给构造函数

转载 作者:行者123 更新时间:2023-11-30 03:33:52 26 4
gpt4 key购买 nike

我想在 JNI 的帮助下将整数值传递给学生类构造函数,但可能无法获得预期的输出我出了什么问题请任何人都可以引用此代码并指导我。

Student.java

public class Student {

private int age;

public Student(int age) {
this.age = age;
}

public int getAge() {
return age;
}
}

StudentActivity.java

public class StudentActivity extends AppCompatActivity {

static {
System.loadLibrary("native-lib");
}

protected Student student;

public static native Student getStudentInfo();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_student);
student = getStudentInfo();
Log.d("TAG_DATA",String.valueOf(student.getAge()));
}
}

学生.cpp

JNIEXPORT jobject JNICALL
Java_com_kishandonga_jni_1expriment_Design_StudentActivity_getStudentInfo(JNIEnv *env,
jclass type) {

jclass fStudentClass = env->FindClass("com/kishandonga/jni_expriment/Model/Student");
jmethodID constructor = env->GetMethodID(fStudentClass, "<init>", "(I)V");
jobject nStdClass = env->NewObject(fStudentClass, constructor, 13);
env->CallVoidMethod(nStdClass, constructor);

return nStdClass;
}

最佳答案

试试这个

学生.cpp

JNIEXPORT jobject JNICALL
Java_com_kishandonga_jni_1expriment_Design_StudentActivity_getStudentInfo(JNIEnv *env,
jclass type) {

jclass fStudentClass = env->FindClass("com/kishandonga/jni_expriment/Model/Student");
jmethodID constructor = env->GetMethodID(fStudentClass, "<init>", "(I)V");
jobject nStdClass = env->NewObject(fStudentClass, constructor, 13);
// remove this
// env->CallVoidMethod(nStdClass, constructor);
return nStdClass;
}

关于android - 如何使用 JNI 将数据传递给构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42491260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com