最近在Android下实现对设备的操作,发现使用JAVA的输入流时会经常卡住,即一直处于等待状态,导致程序无法继续运行下去,改用C语言测试,倒没有出现该问题,于时将相应操作封装成SO,再用JNI来调用,没想到多次读写操作后出现了ReferenceTable overflow (max=1024)提示,然后程序就退出了,后来发现是使用了buff = env->GetByteArrayElements(buffer, 0);之类的语句后没有使用env->ReleaseByteArrayElements(buffer, buf, 0);之类的语句进行释放造成的,在相应位置添加释放操作即可。
网友评论