在使用OpenCV之前,Android必須先下載ndk,因為OpenCV使用了native代碼,這里建議Android Studio創建C++項目來寫OpenCV的內容
1、首先在官網下載OpenCV第三方包
下載鏈接:https://opencv.org/releases/
2、查看下載后的文件目錄
samples文件夾里面是一些樣例,sdk文件夾是我們需要的第三方包
此時將整個sdk文件夾導入到項目中也是可以的,但是900M的文件夾會讓項目很龐大,所以我們要導入項目的是sdk包下的一個java包
3、在項目中導入第三方包
點擊Next,然后點擊確認進行導包
將java代碼作為模塊導入之后,我們還得導入配置包,在sdk文件夾-->native文件夾-->libs文件夾里面的四個以os為后綴的文件
在OpenCV模塊下創建libs目錄,然后將四個文件復制進去。
這四個文件加起來有100M了,還是挺龐大的,這里我知道了自己手機需要的是哪一個文件夾,最后我只留下了第一個文件
4、修改項目配置
我們要修改OpenCV包下的 build.gradle 文件夾,讓里面的sdk版本與項目一致
將文件中的application改為 library,並且將applicationId刪掉,因為我們要做的是引用這個包
然后在app目錄的build.gradle文件的依賴中導入OpenCV,括號里面是冒號和剛才導入模塊的命名
我們將libs文件加入到項目中,還得讓編譯器知道,所以要修改app的build.gradle文件(如果libs放在opencv包里就修改opencv包里的文件),才能運行OpenCV
5、在項目中使用OpenCV測試一下
查看是否成功,如果是使用Android普通項目肯定是不成功的,運行后會報錯,因為少了一個運行OpenCV很重要的文件 libc++_shared.so
接下來我們通過C++項目(普通的Android項目沒有)自動創建這個文件
6、創建C++項目
這是一個全新的項目,需要導入OpenCV第三方包和修改build.gradle文件,也就是再做一遍上面的流程
c++項目的app目錄下帶有一個libs文件夾,所以將原來在opencv庫下libs文件夾的內容復制到app目錄下(libs包換位置后,記得修改app目錄的build.gradle文件),文件結構如下
所以文件要加上這兩段,使用C++項目在build完了之后就會創建 libc++_shared.so 這個文件(clean之后會刪除)
8、完成
按理說這樣子我們的項目就可以運行了,也解決了沒有 libc++_shared.so 這個文件的問題
如果你不想使用C++項目,在這個C++項目的文件里面已經創建了一個 libc++_shared.so文件,去把它復制到普通Android項目的opencv包的libs目錄對應的文件夾就可以了
復制的時候要找准對應版本的libc++_shared.so文件