美文网首页
using JNI after critical ... in

using JNI after critical ... in

作者: devzhaoyou | 来源:发表于2024-02-20 09:49 被阅读0次

搞了半天终于知道原因了,jni项目的c++代码中使用了env->GetPrimitiveArrayCritical(imgSrc, 0);方法,那么在这句之后就不能再调用env相关的其他接口了,调用后就会闪退,当然google后发现可能是特殊的设备造成的,其中的原因不清楚需要看底层的源码,不过既然碰到了以后就慎用了。

我的程序查了下没有这样调用。后来发现在某个jni的接口中调用了 env->GetPrimitiveArrayCritical接口,之后调用了其他自定义函数,函数里又有回调,回调函数中又调用了 env->GetObjectClass, 所以造成了崩溃。
两块代码中间隔的比较远,经过了回调,但是还是在同一个线程,不太容易发现。

相关文章

网友评论

      本文标题:using JNI after critical ... in

      本文链接:https://www.haomeiwen.com/subject/eqksodtx.html