%c是要输入一个ascii字符串, ascii字符串范围是0~127
如果不在这个范围应该是抛出了一个exception

解决方案 »

  1.   

    错了, 是ascii字符, 非字符串
      

  2.   

    晕,"%c%s", 这里,%c对应的是1个字节的char类型,char的范围就是0-127...你说你传160能对么?
      

  3.   


    static jstring str_tst(JNIEnv *env, jobject thiz)
    {
    char buf[100];
    memset(buf, 0x00, sizeof(buf));
    buf[0] = 160;
    sprintf(buf+1, "%s", "abcdef");
    return env->NewStringUTF(buf); 
    }
      

  4.   

    事情是这样的:底层有一个通信协议,我们想通过JNI的方式去发送和接收通信协议报文内容,假如通信协议里面传递过来的值大于127的话,Android虚拟机就死掉,如何处理?
      

  5.   

    传160以上的就不能用char了,要用unicode的方式。
      

  6.   

    JNI可以传好几个类型的参数。
    1.如果char不够,int总够了吧。
    2.如果只是想传常量160,就不用传了。
    3.如果楼主一定要用char,如果你的范围是256,你传个64过去之后在使用的时候*4不就好了吗。