openCV を使用して 300.000 回のダウンロードが行われているアプリを市場に出しています。私はよくクラッシュ レポート (おそらく 50 人中 1 人のユーザー) をこのエラーで受け取りました (Wildfire、Nexus 4/One/S でこのバグを自分で経験したことはありません):
java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_Mat(ネイティブ メソッド) の n_Mat。 java:382) org.opencv.android.JavaCameraView.connectCamera(JavaCameraView.java:450) で org.opencv.android.CameraBridgeViewBase.onEnterStartedState(CameraBridgeViewBase.java:397) で org.opencv.android.CameraBridgeViewBase.processEnterState(CameraBridgeViewBase) .java:355) org.opencv.android.CameraBridgeViewBase.checkCurrentState(CameraBridgeViewBase.java:348) で org.opencv.android.CameraBridgeViewBase.surfaceChanged(CameraBridgeViewBase.java:223) で android.view.SurfaceView.updateWindow(SurfaceView. java:558) android.view.SurfaceView.dispatchDraw(SurfaceView.java:350) で Android.view.ViewGroup.drawChild(ViewGroup.java:1644) で android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) で android.view.ViewGroup.drawChild(ViewGroup.java:1644) で android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) で android. view.View.draw(View.java:6883) で android.widget.FrameLayout.draw(FrameLayout.java:357) で android.view.ViewGroup.drawChild(ViewGroup.java:1646) で android.view.ViewGroup.dispatchDraw (ViewGroup.java:1373) android.view.View.draw(View.java:6883) で android.widget.FrameLayout.draw(FrameLayout.java:357) で com.android.internal.policy.impl.PhoneWindow$ DecorView.draw(PhoneWindow.java:1921) で android.view.ViewRoot.draw(ViewRoot.java:1528) で android.view.ViewRoot.performTraversals(ViewRoot.java:1264) で android.view.ViewRoot.handleMessage(ViewRoot) .java:1866) で android.os.Handler.dispatchMessage(Handler.java:99) で android.os.java.lang.reflect.Method.invokeNative(Native Method) の android.app.ActivityThread.main(ActivityThread.java:3687) の Looper.loop(Looper.java:130) Method.java:507) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) で com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) で dalvik.system .NativeStart.main(ネイティブメソッド)
OpenCV の静的初期化を使用し (アプリのインストール時にユーザーに他のアプリをダウンロードさせたくないため)、必要なすべてのライブラリ .so をarmeabi
, armeabi-v7a
,mips
にコピーしましたx86
。
また、アクティビティの開始時にクラッシュが発生し、このデバイスで最も多いこともわかっています (これがデバイス関連であるかどうかはわかりません): ALCATEL ONE TOUCH 985N (one_touch_985N_gsm)、Nexus One (passion)、Galaxy Ace (GT-S5830D) ...
ありがとうございました