三天,整整三天才復原去年寫過的App
先大致講一下更新的部分
首先Ubuntu已經太久沒更新了,輸入下面指令更新。
sudo apt-get update |
下載最新OpenCV2.4.6 for Android
解壓縮至~/home/"username"
開啟Eclipse,更新SDK Manager
wait...
Import OpenCV,找到剛解壓縮的OpenCV並且import進來
有個方法可以知道Opencv的函式能不能使用
Android Development with OpenCV
最下面有個 Hello OpenCV Sample 若可以成功燒錄即可以使用OpenCV函式。
重點是有個問題一直無法解決
這個錯誤使我無法使用 Mat img=Highgui.imread("image.jpg");
找了許多解決方式
1. Hello OpenCV Sample,利用這個範例我測試是否能夠使用OpenCV函式
結果發生錯誤,OpenCV Manager package was not found!!
因此參考【Android】【OpenCV】環境建置 利用OpenCV-2.4.6-android-sdk/apk/OpenCV_2.4.6_Manager_2.9_arm7a-nero,apk
OpenCV-2.4.6-android-sdk/apk裡面會有個readme,選擇手機核心所對應的OpenCV Manager安裝
如果在Ubuntu環境下,那直接adb install OpenCV-2.4.6-android-sdk/apk/OpenCV_2.4.6_Manager_2.9_arm7a-nero,apk 即可
但以上仍然無法使去年的專案復活。順帶一提Hello OpenCV Sample可以成功執行,因此我想可能是設定問題。
2. 參考 Unsatisfied Link Error - OpenCV for Android Non-native
Unsatisfied Link Error - OpenCV for Android Non-native
(上面兩個網址是不一樣的)
可能是因為專案檔沒有 libopencv_java.so 因此將 OpenCV-2.4.6-android-sdk/sdk/native/libs/ 裡面三個資料夾複製到專案檔libs裡面去
\armeabi 、 \armeabi-v7a 與\x86 這三個。但由於是舊專案沒有libs資料夾,因此我新增了一個資料夾,也體驗了簡單設計App icon的樂趣
沒想到現在建立專案可以直接設定這些東西,滿有趣的。將三個資料複製過去之後依然沒有改變。
public void onCreate(Bundle savedInstanceState) { //接下要作的事情 } |
這邊程式碼一定要加喔,之後專案檔可以成功執行後,將這if (!OpenCVLoader.initDebug()) 判斷式刪除就又沒辦法執行了
3. 最後我更改java compiler的版本,本來1.5改成1.6就成功了。
留言列表