OpenCV SDK for Android)を使用して、リアルタイムの処理とマッチングを開発します。
Main OpenCV TraitmentロジックはJNI
関数にあります。
問題は(時々)私のアプリがエラーなしでクラッシュすることがあるので、私がアルゴリズムを開発するまで問題を無視しました。
私はエラーの調査を開始し始めて、それは間違いなくJNIの部分にあります。
これが私がLog
に入るエラーです
A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 27424 (Thread-8)
A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
_
私はインターネットでたくさん検索しました、そして私はこの解決策を見つけました
<activity
Android:hardwareAccelerated="false" />
_
それは2日間働き、今私は同じエラーを取り戻しました。
問題は何ですか、そしてどのように私はそれを解決することができますか?
どんな助けにも感謝し、事前にありがとうございました。
[〜#〜]編集[〜#〜]
私のアプリケーションがギャラリーから参照イメージを取得し、それをリアルタイムイメージフィードでopenCVを使用してそれを比較するように追加します。
ギャラリーやアプリがクラッシュした画像を選択した場合、そのイメージは再び動作しなくなり、新しいイメージや前に機能しているイメージを取っても、アプリはうまくいきます。
物理デバイスで実行します。私はそれをしました、そしてそれは私にとって大丈夫です。
私の場合、私は問題を絞り込みに絞り込みましょう。ただし、画面が2回目にレンダリングされた場合に限ります。例:スクリーンを残すと、FragmentManagerを介して画面に戻ります。
いずれにせよ、それがAvabiewiewである場合は、Androidmanifest.xmlのハードウェアアクセラレーションをオフにして、またはさらに良いADコンポーネント自体に直接優れています。
val AdRequest:AdRequest = AdRequest.Builder()。build()//リロードでクラッシュするように画面がクラッシュさせるため、このビューでハードウェアアクセラレーションを無効にします。 Aview.SetLayerType(View.Layer_Type_Software、Null)Aview.Loadad(AdRequest)
これまでそれを下げるのは少し難しい縮小でしたが、私はこれに気づいた:
I/DynamiteModule:ローカルモジュールcom.google.android.gms.ads.dynamite:0とリモートモジュールcom.google.android.gms.ads.dynamite:204204100
メッセージの直上
"致命的な信号11(sigsegv)、コード1(segv_maperr)、TID 19705(RenderThread)、PID 19631"の障害ADDR 0x0
私はそれがAdmobだったと思いました、そして、それで最終的にこの答えに私を導いた。
これは私のために働いた。これが他の人たちを助けることを願っています。
私はそれによって解決されました
私のスマートフォンを再起動しました(物理デバイス)。
Android Studio]を使用している場合は、ファイル - >キャッシュを無効にして再起動します