AndroidStudio集成OpenCV的實現(xiàn)教程
我的環(huán)境:
Android Studio Arctic Fox + JDK11 + Gradle 7.0.2 + NDK21 + opencv-4.5.1-android-sdk
代碼鏈接:
1.創(chuàng)建一個Native工程
2.下載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) #設(shè)置系統(tǒng)變量,目的是為了讓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,發(fā)現(xiàn)生成的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 這個庫
重新編譯后發(fā)現(xiàn) apk 中有了 libc++_shared.so ,而且 apk 可以正常運行
到此這篇關(guān)于AndroidStudio集成OpenCV的實現(xiàn)教程的文章就介紹到這了,更多相關(guān)AndroidStudio集成OpenCV內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android 使用Toolbar實現(xiàn)應用欄實例詳解
這篇文章主要為大家介紹了Android 使用Toolbar實現(xiàn)應用欄實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11Android fragment實現(xiàn)按鈕點擊事件的示例講解
下面小編就為大家分享一篇Android fragment實現(xiàn)按鈕點擊事件的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01