JNI——将JAVA字符串数组转化为char**(C字符数组的(字符串)数组)的一个例子

/**将JAVA字符串数组转C char字符数组(俗称字符串)的数组**/
char** stringArrToCharArr(JNIEnv * env, jclass jc, jobjectArray strArray ){
    jstring jstr;
    jsize len = (*env)->GetArrayLength(env, strArray);
    char **pstr = (char **) malloc(len * sizeof(char *));
    int i=0;
            
    for (i=0 ; i < len; i++) {
       jstr = (*env)->GetObjectArrayElement(env, strArray, i);
	   pstr[i] = (char *)(*env)->GetStringUTFChars(env, jstr, 0);                  
    }           
    return pstr;
}



/**按路径文件列表打开文件并进行拼接**/
jobject Java_com_cjz_image_ImageUtil_init(JNIEnv *env, jobject obj, jobjectArray pathArray){
	char** pathArr = stringArrToCharArr(env, obj, pathArray);
	int pathArrSize = (*env)->GetArrayLength(env, pathArray);
	int i;
	for(i = 0; i < pathArrSize; i++){
		LOGI("filePath:%s\n", pathArr[i]);
	}
	return NULL;
} 

MakeFile如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_LDLIBS    := -lm -llog  -ljnigraphics
LOCAL_MODULE    := JNIBitmapUtil
LOCAL_SRC_FILES := BitmapUtil.c
include $(BUILD_SHARED_LIBRARY)


要显示LOG要注意LOCAL_LDLIBS里面一定要有-llog参数,使得LOG库能顺利被编译进去

猜你喜欢

转载自blog.csdn.net/cjzjolly/article/details/80361807
今日推荐