JNI C创建Java字符串数组

Posted free-thinker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JNI C创建Java字符串数组相关的知识,希望对你有一定的参考价值。

创建Java字符串数组


注:jni中没有与String[]对应的数据类型,所以需要创建对象数组,循环添加jstring对象

#include <Sample3.h>
      #include <string.h>
      #include <stdlib.h>
      #define ARRAY_LENGTH 5   

     JNIEXPORT jobjectArray JNICALL Java_Sample3_stringMethod
(JNIEnv *env, jobject obj, jstring string)
       {   
         jclass objClass = (*env)->FindClass(env, "java/lang/String");
        jobjectArray texts= (*env)->NewObjectArray(env,
(jsize)ARRAY_LENGTH, objClass, 0);
         jstring jstr;
          char* sa[] = { "Hello,", "world!", "JNI", "很", "好玩" };
         int i=0;
         for(;i<ARRAY_LENGTH;i++)
          {
            jstr = (*env)->NewStringUTF( env, sa[i] );
            (*env)->SetObjectArrayElement(env, texts, i, jstr);//必须放入jstring
         }
        return texts;
   }

以上是关于JNI C创建Java字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJ IDEA平台下JNI编程—本地C代码创建Java对象及引用

IntelliJ IDEA平台下JNI编程—本地C代码创建Java对象及引用

混合编程jni 第六篇之native 中字符串和数组的操作

混合编程jni 第六篇之native 中字符串和数组的操作

Java中JNI的使用(下)

JNI/NDK开发指南——C/C++访问Java实例方法和静态方法