公司以前的jni库好好的,最近在6.0系统上频出问题,苦于没有实机用虚拟机测试,别说,还真找到原因了
公司属于物联网行业,所以库中Java端代码用了不少byte类型,C端用uint8_t与之对应。
网上说byte这个数据的范围是-128---127,但是Android6.0之前的用着都好好的,突然这个版本出问题了,原因就是这个范围造成的,
底下C代码用uint8_t,范围是0---255,如果超过127传上来就出错了。
问题找到了,那就改呗,方式就和实际情况相关了。
把我整惨了,代码中有好多这个类型的数据,有的还不能随便改。
Android不知道搞啥,突然搞成这个样