× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
JNIで
というエラーが出た。 ググってみると、無効になったクラスにアクセスしてるとか、解放された変数に参照しているみたいなことが書いてある。 参考 参考 でも、そんな単純ミスはしていない。 おかしい。 その少し前のワーニングで、 trying to work around app JNI bugs, but didn't find 0xXXXXXXXX in table! DeleteLocalRef(0xXXXXXXXX) failed to find entry というようなのが出ている。 で、このポインタが示す変数はなんぞや、というのを出力して見てみたところ、 C++変数から変換したJNIオブジェクトだった。 特に何の問題もなさそう。 さらに発見したのが、
の戻り値のobjResultが0x1になっている。 エラーはこの変数にアクセスした瞬間起きたようだ。 しかし、メソッドシグネチャーも合っているし、なぜ戻り値がこんなことになるのか。 このコードのどこに問題があるのか。 こういう不可解なことが起きるときはスレッドが絡んでいるもの。 そうすると真の原因はここでないまったく別の場所にある可能性がある。 ということで、ともかく例外を出力させてみる。
すると…
案の定、スレッドのエラーだった。 発生箇所とはこことは無関係の場所。 ここを直したら、無事に動いた。 PR |
|