搞了半天終于知道原因了边坤,jni項(xiàng)目的c++代碼中使用了env->GetPrimitiveArrayCritical(imgSrc, 0);方法垦沉,那么在這句之后就不能再調(diào)用env相關(guān)的其他接口了侧但,調(diào)用后就會(huì)閃退萍肆,當(dāng)然google后發(fā)現(xiàn)可能是特殊的設(shè)備造成的,其中的原因不清楚需要看底層的源碼最岗,不過既然碰到了以后就慎用了蛔六。
我的程序查了下沒有這樣調(diào)用荆永。后來發(fā)現(xiàn)在某個(gè)jni的接口中調(diào)用了 env->GetPrimitiveArrayCritical接口废亭,之后調(diào)用了其他自定義函數(shù),函數(shù)里又有回調(diào)具钥,回調(diào)函數(shù)中又調(diào)用了 env->GetObjectClass, 所以造成了崩潰豆村。
兩塊代碼中間隔的比較遠(yuǎn),經(jīng)過了回調(diào)骂删,但是還是在同一個(gè)線程掌动,不太容易發(fā)現(xiàn)。