标题:如何在Android Java的Ubuntu系统上编译出libopencv_java4.so
bashcd ~
wget https://github.com/Kitware/CMake/releases/download/v3.30.3/cmake-3.30.3-linux-x86_64.tar.gz
tar -xzvf cmake-3.30.3-linux-x86_64.tar.gz
sudo ln -sf $(pwd)/cmake-3.30.3-linux-x86_64/bin/* /usr/bin/
cmake --version
bashsudo apt-get install ant openjdk-8-jdk -y
bashwget https://dl.google.com/android/repository/android-ndk-r27b-linux.zip unzip android-ndk-r27b-linux.zip
在~/.bashrc
文件中添加以下内容:
bashexport ANDROID_NDK=/ssd/xiedong/android-ndk-r27b
export PATH=$PATH:$ANDROID_NDK
export ANT_HOME=/usr/bin/ant
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$ANT_HOME:$JAVA_HOME/bin:$PATH
然后使其生效:
bashsource ~/.bashrc
bash$ANDROID_NDK/ndk-build --version
# 返回以下信息即表示成功:
# GNU Make 4.3
# Built for x86_64-pc-linux-gnu
# Copyright (C) 1988-2020 Free Software Foundation, Inc.
# License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
# This is free software: you are free to change and redistribute it.
# There is NO WARRANTY, to the extent permitted by law.
确保安装了Python3.2以上版本的miniconda3,具体安装过程这里略。
bashgit clone https://github.com/opencv/opencv.git --depth 1
git clone https://github.com/opencv/opencv_contrib.git --depth 1
mkdir build && cd build
bashcmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_BUILD_WITH_INSTALL_RPATH=ON \
-D ANDROID_ABI=arm64-v8a \
-D ANDROID_PLATFORM=android-21 \
-D CMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_opencv_freetype=ON \
-D WITH_FREETYPE=ON \
-D ENABLE_CXX11=ON \
-D BUILD_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D BUILD_ANDROID_PROJECTS=OFF \
-D BUILD_SHARED_LIBS=ON \
-D WITH_OPENCL=OFF \
-D BUILD_opencv_java=ON \
-D BUILD_opencv_java_bindings_generator=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D ANT_EXECUTABLE=/usr/bin/ant \
..
如果看到以下信息,说明Java环境配置有误:
plaintext-- Java: -- ant: NO -- Java wrappers: NO -- Java tests: NO
bashmake -j$(nproc)
当日志中出现如下提示时,表示编译成功:
plaintext[100%] Linking CXX shared module ../../../jni/arm64-v8a/libopencv_java4.so
通过以上步骤,你就可以在Android Java环境下的Ubuntu系统中成功编译出libopencv_java4.so
库了。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!