java调用c函数,
java定义:public native String get(int cmd);
c函数实现:
JNIEXPORT jstring JNICALL Java_com_unistrong_barcodetest_ReadService_get
  (JNIEnv *env, jobject obj, jint cmd){
    char* str;
    str = barcode_Uart_Read(cmd);//这个没有问题,值为6298
    jclass strClass = (*env)->GetObjectClass(env, obj);
    jmethodID ctorID = (*env)->GetMethodID(env, strClass, "<get>", "(Ljava/lang/String;)V");
    LOGD("ctorID===%s\n", ctorID);//打印NULL,为什么?
    jbyteArray bytes = (*env)->NewByteArray(env, strlen(str));
    LOGD("bytes===%s\n", bytes);//打印乱码,为什么?
    (*env)->SetByteArrayRegion(env, bytes, 0, strlen(str), (jbyte*)str);
    LOGD("str===%s\n", str);//没有执行,从这里开始就没有执行了,为什么,上面那句错了么?
    jstring encoding = (*env)->NewStringUTF(env, "utf-8");
    LOGD("encoding===%s\n", encoding);
    return (jstring)(*env)->NewObject(env, strClass, ctorID, bytes, encoding);
  
}