AndroidStudio集成OpenCV的實現教程
我的環境:
Android Studio Arctic Fox + JDK11 + Gradle 7.0.2 + NDK21 + opencv-4.5.1-android-sdk
代碼鏈接:
OpenCV 環境搭建 Demo
1.創建一個Native工程
2.下載OpenCV SDK
OpenCV SDK
3.在Android Studio的cpp目錄下新建libs文件夾
將我們下載的OpenCV SDK 這個文件夾“OpenCV-android-sdk\sdk\native\libs” 下的 armeabi-v7a 整個復制到剛才的 libs 文件夾下
4.將 “OpenCV-android-sdk\sdk\native\jni” 路徑下的 include 文件夾整個復制到 cpp 文件夾下
5.配置build.gradle
6.配置CMakelists.txt
#目的是為瞭讓CMake找到我們的頭文件在哪裡,這裡是在 cpp/include 這個文件夾下 include_directories(include) #設置系統變量,目的是為瞭讓CMake知道在哪個目錄下找到我們的libopencv_java4.so這個庫 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI}") target_link_libraries( myopencv opencv_java4 #鏈接libopencv_java4.so,這樣在生成的APK中才會有這個so ${log-lib})
7.點擊build,發現生成的apk中有我們引入的庫
接下來就是運行時會報錯
Java.lang.UnsatisfiedLinkError: dlopen failed: library “libc++_shared.so” not found
原因是在 NDK18 以前采用的是 gcc 編譯,NDK18 以後采用的是 clang ,而且 NDK18 以後沒有 libc++_shared.so 這個庫瞭,所以在運行時會報錯。
解決辦法:
在build.gradle中增加一句
arguments '-DANDROID_STL=c++_shared'
這樣可以遠程獲取到 libc++_shared.so 這個庫
重新編譯後發現 apk 中有瞭 libc++_shared.so ,而且 apk 可以正常運行
到此這篇關於AndroidStudio集成OpenCV的實現教程的文章就介紹到這瞭,更多相關AndroidStudio集成OpenCV內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- windows下vscode使用cmake的方法
- 鴻蒙手機版JNI實戰案例解析(JNI開發、SO庫生成、SO庫使用)
- VisualStudio2019配置OpenCV4.5.0的方法示例
- AndroidStudio工程打包aab文件
- android 調用JNI SO動態庫的方法