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

xiaoxiao2021-02-28  34

/**将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库能顺利被编译进去

转载请注明原文地址: https://www.6miu.com/read-2623740.html

最新回复(0)