I'm trying to follow the tutorial at http://code.opencv.org/projects/opencv/wiki/Trunk_OpenCV_for_Android to build OpenCV 3.2.0 for Android from source. This is because eventually I want to customise the build, but for now I'm content to just be able to build it myself.
In accordance with the tutorial I'm running the following commands, which appear to complete successfully:
export ANDROID_NDK=~/my-android-ndk
export ANDROID_STANDALONE_TOOLCHAIN=~/my-android-toolchain
cd opencv/platforms
sh ./scripts/cmake_android_arm.sh
cd build_android_arm
make -j8
When I check the build_android_arm directory, I see a lot of things, including all the .a files I expect. However there seems to be one file missing: the libopencv_java.so which is the actual library loaded by the openCV static library manager (I'm not able to use the dynamic library manager). This file is present in the Android samples, and copying manually across to my project does work. But I would like to be able to build this file myself!
I've tried playing around with various CMake settings myself, but there are thousands of possible combinations of options and I'm not sure where to start.
What am I missing?
Output from the shell script:
CMake Deprecation Warning at /Applications/CMake.app/Contents/share/cmake-3.8/Modules/CMakeForceCompiler.cmake:83 (message):
The CMAKE_FORCE_CXX_COMPILER macro is deprecated. Instead just set
CMAKE_CXX_COMPILER and allow CMake to identify the compiler.
Call Stack (most recent call first):
/Users/me/AndroidStudioProjects/opencv-3.2.0/platforms/android/android.toolchain.cmake:1166 (CMAKE_FORCE_CXX_COMPILER)
/Users/me/AndroidStudioProjects/opencv-3.2.0/platforms/build_android_arm/CMakeFiles/3.8.2/CMakeSystem.cmake:6 (include)
/Users/me/AndroidStudioProjects/opencv-3.2.0/platforms/build_android_arm/CMakeFiles/CMakeTmp/CMakeLists.txt:3 (project)
-- Performing Test C_HAS_MFPU_NEON - Success
-- Assume that non-module dependency is available: z (for module opencv_core)
CMake Warning at cmake/OpenCVDetectAndroidSDK.cmake:205 (message):
Can not find any SDK target compatible with: 9 11
The project example-15-puzzle will not be build
Call Stack (most recent call first):
samples/android/15-puzzle/CMakeLists.txt:3 (add_android_project)
CMake Warning at cmake/OpenCVDetectAndroidSDK.cmake:205 (message):
Can not find any SDK target compatible with: 9 11
The project example-face-detection will not be build
Call Stack (most recent call first):
samples/android/face-detection/CMakeLists.txt:9 (add_android_project)
CMake Warning at cmake/OpenCVDetectAndroidSDK.cmake:205 (message):
Can not find any SDK target compatible with: 9 11
The project example-image-manipulations will not be build
Call Stack (most recent call first):
samples/android/image-manipulations/CMakeLists.txt:3 (add_android_project)
CMake Warning at cmake/OpenCVDetectAndroidSDK.cmake:205 (message):
Can not find any SDK target compatible with: 9 11
The project example-camera-calibration will not be build
Call Stack (most recent call first):
samples/android/camera-calibration/CMakeLists.txt:3 (add_android_project)
CMake Warning at cmake/OpenCVDetectAndroidSDK.cmake:205 (message):
Can not find any SDK target compatible with: 9 11
The project example-color-blob-detection will not be build
Call Stack (most recent call first):
samples/android/color-blob-detection/CMakeLists.txt:3 (add_android_project)
CMake Warning at cmake/OpenCVDetectAndroidSDK.cmake:205 (message):
Can not find any SDK target compatible with: 9 11
The project example-tutorial-1-camerapreview will not be build
Call Stack (most recent call first):
samples/android/tutorial-1-camerapreview/CMakeLists.txt:3 (add_android_project)
CMake Warning at cmake/OpenCVDetectAndroidSDK.cmake:205 (message):
Can not find any SDK target compatible with: 9 11
The project example-tutorial-2-mixedprocessing will not be build
Call Stack (most recent call first):
samples/android/tutorial-2-mixedprocessing/CMakeLists.txt:9 (add_android_project)
CMake Warning at cmake/OpenCVDetectAndroidSDK.cmake:205 (message):
Can not find any SDK target compatible with: 9 11
The project example-tutorial-3-cameracontrol will not be build
Call Stack (most recent call first):
samples/android/tutorial-3-cameracontrol/CMakeLists.txt:3 (add_android_project)
-- Sample example-tutorial-4-opencl is disabled, because ANDROID_OPENCL_SDK is not specified
--
-- General configuration for OpenCV 3.2.0 =====================================
-- Version control: unknown
--
-- Platform:
-- Timestamp: 2017-06-16T18:53:59Z
-- Host: Darwin 16.6.0 x86_64
-- Target: Android 1 armv7-a
-- CMake: 3.8.2
-- CMake generator: Unix Makefiles
-- CMake build tool: /usr/bin/make
-- Configuration: Release
--
-- C/C++:
-- Built as dynamic libs?: NO
-- C++ Compiler: /Users/me/AndroidStudioProjects/android-ndk-r12b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++ (ver 4.9)
-- C++ flags (Release): -fexceptions -frtti -fpic -Wno-psabi --sysroot=/Users/me/AndroidStudioProjects/android-ndk-r12b/platforms/android-9/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fdata-sections -ffunction-sections -Wa,--noexecstack -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -fomit-frame-pointer -mfp16-format=ieee -fvisibility=hidden -fvisibility-inlines-hidden -mthumb -fomit-frame-pointer -fno-strict-aliasing -O3 -DNDEBUG -DNDEBUG
-- C++ flags (Debug): -fexceptions -frtti -fpic -Wno-psabi --sysroot=/Users/me/AndroidStudioProjects/android-ndk-r12b/platforms/android-9/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fdata-sections -ffunction-sections -Wa,--noexecstack -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -fomit-frame-pointer -mfp16-format=ieee -fvisibility=hidden -fvisibility-inlines-hidden -marm -fno-omit-frame-pointer -fno-strict-aliasing -O0 -g -DDEBUG -D_DEBUG -O0 -DDEBUG -D_DEBUG
-- C Compiler: /Users/me/AndroidStudioProjects/android-ndk-r12b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc
-- C flags (Release): -fexceptions -fpic -Wno-psabi --sysroot=/Users/me/AndroidStudioProjects/android-ndk-r12b/platforms/android-9/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fdata-sections -ffunction-sections -Wa,--noexecstack -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-comment -fdiagnostics-show-option -fomit-frame-pointer -mfp16-format=ieee -fvisibility=hidden -mthumb -fomit-frame-pointer -fno-strict-aliasing -O3 -DNDEBUG -DNDEBUG
-- C flags (Debug): -fexceptions -fpic -Wno-psabi --sysroot=/Users/me/AndroidStudioProjects/android-ndk-r12b/platforms/android-9/arch-arm -funwind-tables -finline-limit=64 -fsigned-char -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fdata-sections -ffunction-sections -Wa,--noexecstack -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-comment -fdiagnostics-show-option -fomit-frame-pointer -mfp16-format=ieee -fvisibility=hidden -marm -fno-omit-frame-pointer -fno-strict-aliasing -O0 -g -DDEBUG -D_DEBUG -O0 -DDEBUG -D_DEBUG
-- Linker flags (Release): -Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,-allow-shlib-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
-- Linker flags (Debug): -Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,-allow-shlib-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now
-- ccache: NO
-- Precompiled headers: NO
-- Extra dependencies: z dl m log
-- 3rdparty dependencies: libjpeg libwebp libpng libtiff libjasper IlmImf tegra_hal
--
-- OpenCV modules:
-- To be built: core flann imgproc ml photo video imgcodecs shape videoio highgui objdetect superres ts features2d calib3d stitching videostab
-- Disabled: world
-- Disabled by dependency: -
-- Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python2 viz
--
-- Android:
-- Android ABI: armeabi-v7a
-- STL type: gnustl_static
-- Native API level: android-9
-- SDK target: android_sdk_target_status-NOTFOUND
-- Android NDK: /Users/me/AndroidStudioProjects/android-ndk-r12b (toolchain: arm-linux-androideabi-4.9)
-- android tool: NO
-- Google Play manager: NO
-- Android examples: NO
--
-- GUI:
-- GTK+: NO
-- GThread : NO
-- GtkGlExt: NO
-- OpenGL support: NO
-- VTK support: NO
--
-- Media I/O:
-- ZLib: z (ver 1.2.3)
-- JPEG: build (ver 90)
-- WEBP: build (ver 0.3.1)
-- PNG: build (ver 1.6.24)
-- TIFF: build (ver 42 - 4.0.2)
-- JPEG 2000: build (ver 1.900.1)
-- OpenEXR: build (ver 1.7.1)
-- GDAL: NO
-- GDCM: NO
--
-- Video I/O:
--
-- Parallel framework: pthreads
--
-- Other third-party libraries:
-- Use IPP: NO
-- Use Eigen: NO
-- Use Cuda: NO
-- Use OpenCL: NO
-- Use OpenVX: NO
-- Use custom HAL: YES (carotene (ver 0.0.1))
--
-- Python 2:
-- Interpreter: /usr/bin/python2.7 (ver 2.7.10)
--
-- Python 3:
-- Interpreter: /usr/local/bin/python3 (ver 3.6.1)
--
-- Python (for build): /usr/bin/python2.7
--
-- Java:
-- ant: NO
-- Java wrappers: NO
-- Java tests: NO
--
-- Matlab: NO
--
-- Documentation:
-- Doxygen: NO
--
-- Tests and samples:
-- Tests: YES
-- Performance tests: YES
-- C/C++ Examples: NO
--
-- Install path: /Users/me/AndroidStudioProjects/opencv-3.2.0/platforms/build_android_arm/install
--
-- cvconfig.h is in: /Users/me/AndroidStudioProjects/opencv-3.2.0/platforms/build_android_arm
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/me/AndroidStudioProjects/opencv-3.2.0/platforms/build_android_arm