Java层压缩后的byte[]中含0,传到JNI层,byte[]转char,使用strlen计算char的长度,遇到0会结束,取不到真实的长度
那就不能用strlen啊。因为你这是byte数组,本身就不是字符串。长度作为参数传递。
接口中byte[]的类型用jbyteArray然后
int chars_len = (*env)->GetArrayLength(env, jbyteArray);
这样可以得到长度