繁体   English   中英

从jobject数组JNI获取Jclass或jobject

[英]Get Jclass or jobject from jobject array JNI

我有我的Java代码,其中Array是一个自定义对象。

public native int pax_store_get_data_avail_info(DataAvailable[] stats_array);

我的JNI生成文件是

    JNIEXPORT jint JNICALL Java_demo_JNIWrapper_pax_1store_1get_1data_1avail_1info
      (JNIEnv *env, jclass jclass1, jobjectArray jobj){
}

我想在JNI中填充jobjectArray,当我尝试使用我的实现时,我的程序崩溃了。

JNIEXPORT jint JNICALL Java_demo_JNIWrapper_pax_1store_1get_1data_1avail_1info
  (JNIEnv *env, jclass jclass1, jobjectArray jobj){


struct pax_store_data_avail_stat_s test_stat [2] ;

    int i;

    test_stat [0].time = 1460332625;  //  4/10/2016, 4:57:05 PM
    test_stat [0].bytes_in_this_second = 20;

    test_stat [1].time = 1460332626;   //  4/10/2016, 4:57:06 PM 
    test_stat [1].bytes_in_this_second = 30;
    jclass dataClass=(*env)->GetObjectClass(env,"demo/DataAvailable");//Crash Over here 

我无法获得对象类。如果我从Jobject数组中获取jclass或jobject,那就教我了。

是否有其他方法可以在JNI代码中填充Jobject数组。

给定一个jobject您可以使用GetObjectClass来检索该对象的类:

jobject object = ...
jclass c =(*env)->GetObjectClass(env, object);

显然传递一个类名不起作用。 相反 - 给定一个类名 - 使用FindClass来获取jclass

jclass c =(*env)->FindClass(env, "demo/DataAvailable");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM