環境
- Windows 7
- AndroidStudio 3.0
- OpenCV for Android 2.4.11
実行(エラーが出た)
以下の情報を参考にCmakeをしてみた。
CMakeでAndroid向けのOpenCVを利用する
ちなみに↑の中のopencv_java3.soはopencv_java.soにする必要あり。
その状態でAndroid StudioのBuildを実行すると以下のエラーが出た。
Error:error: '../../../../src/main/jniLibs/x86_64/libopencv_java.so', needed by '../../../../build/intermediates/cmake/debug/obj/x86_64/libnative-lib.so', missing and no known rule to make it
原因はOpenCV for Android 2.4.11に存在していないABIをビルドしようとしていたため。
Android StudioでビルドするABIは以下
armeabi, armeabi-v7a, arm64-v8a, x86, x86_64, mips, mips64
OpenCV for Android 2.4.11に入っているABIは以下
armeabi, armeabi-v7a, x86, mips
解決方法
build.gradleの中のdefaultConfigの中に以下のようにabiFiltersを追加するとOKだった。
用語解説
ABI:端末のCPUごとに必要なもの。Javaは仮想マシン環境下なので意識する必要はないが、OpenCVなどのCやC++で作成されたプログラムは実環境下で使用することになるので、端末ごとにデータのやり取りを定義する必要がある。
https://developer.android.com/ndk/guides/abis
https://backport.net/blog/2017/06/23/android_abi/