単純なopenCVアンドロイドプログラムをやろうとしています。 instructions hereに続いてAndroid用のOpenCVをダウンロードしてインストールし、OpenCVライブラリ2.4.2を自分のアンドロイドプロジェクト用のライブラリプロジェクトとして指示状態のように追加しました。Android UnsatisfiedLinkError with OpenCV 2.4.2
しかし、標準の "Hello World Program"を次のようにコンパイルすると、Mat mat = new Mat();
行を含めると失敗しますが、それ以外の場合は失敗します。
07-23 09:59:43.835: E/AndroidRuntime(8222): FATAL EXCEPTION: main
07-23 09:59:43.835: E/AndroidRuntime(8222): java.lang.UnsatisfiedLinkError: n_Mat
07-23 09:59:43.835: E/AndroidRuntime(8222): at org.opencv.core.Mat.n_Mat(Native Method)
07-23 09:59:43.835: E/AndroidRuntime(8222): at org.opencv.core.Mat.<init>(Mat.java:181)
07-23 09:59:43.835: E/AndroidRuntime(8222): at com.example.HelloAndroidActivity.onCreate(HelloAndroidActivity.java:15)
07-23 09:59:43.835: E/AndroidRuntime(8222): at android.app.Activity.performCreate(Activity.java:4538)
07-23 09:59:43.835: E/AndroidRuntime(8222): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071)
07-23 09:59:43.835: E/AndroidRuntime(8222): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161)
07-23 09:59:43.835: E/AndroidRuntime(8222): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2240)
07-23 09:59:43.835: E/AndroidRuntime(8222): at android.app.ActivityThread.access$600(ActivityThread.java:139)
07-23 09:59:43.835: E/AndroidRuntime(8222): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
07-23 09:59:43.835: E/AndroidRuntime(8222): at android.os.Handler.dispatchMessage(Handler.java:99)
07-23 09:59:43.835: E/AndroidRuntime(8222): at android.os.Looper.loop(Looper.java:154)
07-23 09:59:43.835: E/AndroidRuntime(8222): at android.app.ActivityThread.main(ActivityThread.java:4977)
07-23 09:59:43.835: E/AndroidRuntime(8222): at java.lang.reflect.Method.invokeNative(Native Method)
07-23 09:59:43.835: E/AndroidRuntime(8222): at java.lang.reflect.Method.invoke(Method.java:511)
07-23 09:59:43.835: E/AndroidRuntime(8222): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
07-23 09:59:43.835: E/AndroidRuntime(8222): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
07-23 09:59:43.835: E/AndroidRuntime(8222): at dalvik.system.NativeStart.main(Native Method)
2つのことに注意する:私は直接(ここにいくつかの他の質問のように)このコードではネイティブのものを使用していないですし、古いOpenCVの2.3ここで
package com.example;
import org.opencv.core.Mat;
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroidActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Mat mat = new Mat();
}
}
は、プリントアウトし、スタックトレースです.xライブラリは、同じメソッドを使う前にうまくいきました。どちらのAndroidプロジェクトも同じ目標とサポートされているAPI設定を持っています。
このlibを配置した場所は "org.opencv.core.Mat"です。このjarファイルがlibsフォルダにあることを確認してください。 –
このコードを追加すると私の問題が解決しました。 'static {System.loadLibrary(" opencv_java3 "); } ' –