javacv の cppjars zip ファイルに含まれている readme ファイルに従いました。ライブラリを正常にビルドできましたが、新しい .so ファイルを使用してアプリを実行すると、java.lang.UnsatisfiedLinkError が発生しますが、.so はすべてファイルは armeabi フォルダーにあります。この例外がトリガーされるコード行は次のようになります
yuvIplimage = IplImage.create(imageWidth, imageHeight, IPL_DEPTH_8U, 2);
そして例外はこれです
04-29 15:40:46.610: E/AndroidRuntime(23057): FATAL EXCEPTION: main
04-29 15:40:46.610: E/AndroidRuntime(23057): java.lang.ExceptionInInitializerError
04-29 15:40:46.610: E/AndroidRuntime(23057): at com.sample.Stream.initRecorder(Stream.java:84)
04-29 15:40:46.610: E/AndroidRuntime(23057): at com.sample.Stream.onCreate(Stream.java:77)
04-29 15:40:46.610: E/AndroidRuntime(23057): at android.app.Activity.performCreate(Activity.java:4469)
04-29 15:40:46.610: E/AndroidRuntime(23057): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052)
04-29 15:40:46.610: E/AndroidRuntime(23057): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932)
04-29 15:40:46.610: E/AndroidRuntime(23057): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993)
04-29 15:40:46.610: E/AndroidRuntime(23057): at android.app.ActivityThread.access$600(ActivityThread.java:127)
04-29 15:40:46.610: E/AndroidRuntime(23057): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159)
04-29 15:40:46.610: E/AndroidRuntime(23057): at android.os.Handler.dispatchMessage(Handler.java:99)
04-29 15:40:46.610: E/AndroidRuntime(23057): at android.os.Looper.loop(Looper.java:137)
04-29 15:40:46.610: E/AndroidRuntime(23057): at android.app.ActivityThread.main(ActivityThread.java:4507)
04-29 15:40:46.610: E/AndroidRuntime(23057): at java.lang.reflect.Method.invokeNative(Native Method)
04-29 15:40:46.610: E/AndroidRuntime(23057): at java.lang.reflect.Method.invoke(Method.java:511)
04-29 15:40:46.610: E/AndroidRuntime(23057): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:978)
04-29 15:40:46.610: E/AndroidRuntime(23057): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
04-29 15:40:46.610: E/AndroidRuntime(23057): at dalvik.system.NativeStart.main(Native Method)
04-29 15:40:46.610: E/AndroidRuntime(23057): Caused by: java.lang.ExceptionInInitializerError
04-29 15:40:46.610: E/AndroidRuntime(23057): at java.lang.Class.classForName(Native Method)
04-29 15:40:46.610: E/AndroidRuntime(23057): at java.lang.Class.forName(Class.java:217)
04-29 15:40:46.610: E/AndroidRuntime(23057): at com.googlecode.javacpp.Loader.load(Loader.java:338)
04-29 15:40:46.610: E/AndroidRuntime(23057): at com.googlecode.javacpp.Loader.load(Loader.java:319)
04-29 15:40:46.610: E/AndroidRuntime(23057): at com.googlecode.javacv.cpp.opencv_core$CvArr.<clinit>(opencv_core.java:163)
04-29 15:40:46.610: E/AndroidRuntime(23057): ... 16 more
04-29 15:40:46.610: E/AndroidRuntime(23057): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1965]: 108 could not load needed library 'libopencv_core.so' for 'libjniopencv_core.so' (find_library[1200]: 108 'libopencv_core.so' failed to load previously)
04-29 15:40:46.610: E/AndroidRuntime(23057): at java.lang.Runtime.loadLibrary(Runtime.java:370)
04-29 15:40:46.610: E/AndroidRuntime(23057): at java.lang.System.loadLibrary(System.java:535)
04-29 15:40:46.610: E/AndroidRuntime(23057): at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:448)
04-29 15:40:46.610: E/AndroidRuntime(23057): at com.googlecode.javacpp.Loader.load(Loader.java:372)
04-29 15:40:46.610: E/AndroidRuntime(23057): at com.googlecode.javacpp.Loader.load(Loader.java:319)
04-29 15:40:46.610: E/AndroidRuntime(23057): at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:136)
04-29 15:40:46.610: E/AndroidRuntime(23057): ... 21 more
Java SE 6、OpenCV 2.4.5、FFmpeg 1.2、Android NDK r8e など、必要なすべての要件を満たしています。OSはUbuntu11.10です。
javacv からバンドルされたライブラリを使用すると問題なく動作しますが、ライブラリを再構築して x264 を含めると問題が発生するため、コードに問題があるとは思いません。
私は何を間違っていますか?NDK の 64 ビット バージョンと 32 ビット バージョンの両方を試しましたが、同じ問題が解決しません。