解决方案 »

  1.   

    问题已经解决,
    原因:在步骤一序列化接口的地方多了一步
    // 生成文件头(大小)
     cos->WriteVarint32(action.ByteSize()); 
    传到java的buff不需要文件头,只要注释掉这一行就可以。但windows下还是需要的,所以可以在交互接口处分别处理两个平台下的序列化,使接口统一!!
    注意:上面文件步骤2 有错误,是自己测试调试代码,正确代码如下:
      

  2.   

    JNI接口不能使用java的char,应该使用byte,因为java的char是 16个字节的,只有java的byte才是和C++的unsigned char对应的,都是8个字节。
      

  3.   

    传到java的不是已经转成jbyteArray 了么