注意:這顯然是StackOverflow上經常出現的問題,但是-就我所看到的-人們永遠找不到方法或他們的解決方案對我不起作用問題:我正在使用Eclipse Juno ADT。一切正常,直到我嘗試更新NDK。我用新版本(即)替換了ndk文件夾(ndk-r8d即ndk-r8e),在我的Paths and Symbols配置中,我將includes從g ++ 4.6更改為4.7。似乎打破了我的索引:我可以編譯我的代碼,但是Eclipse給出了語義錯誤,就像[ 1 ]和[ 2 ]中一樣。這些錯誤主要是由來自OpenCV4Android使用的符號,如distance,pt,queryIdx和trainIdx。當我嘗試備份到舊配置時,索引仍然損壞!我找不到改變它的方法。我嘗試過的清理項目重建,刷新以及“索引”子菜單中的所有其他選項(在項目上“右鍵單擊”時)在首選項中禁用/啟用索引器驗證trainIdx該Paths and Symbols部分中是否包含僅出現在我的OpenCV4Android中的符號。在該Paths and Symbols部分中更改我的包含內容的順序。我基本上試圖將OpenCV include放在開頭和結尾。一些觀察什么不起作用由于以下原因,我認為它是CDT索引:在命令行中,我可以使用ndk-build clean和構建項目ndk-build。當我啟動Eclipse時,直到打開C ++文件(從該jni文件夾開始)之前,我沒有任何錯誤。我總是可以構建項目,但是只要打開了C ++文件,由于很多原因,我將無法再運行該應用程序 Field '<name>' could not be resolved.如果我不打開C ++文件,則Eclipse不會報告任何錯誤,并且可以成功構建和部署Android應用程序。有趣的事實下面的代碼報告有關錯誤line,queryIdx,pt:cv::line(mRgb, keypointsA[matches[i].queryIdx].pt, keypointsB[matches[i].trainIdx].pt, cv::Scalar(255, 0, 0, 255), 1, 8, 0);如果我將其編寫如下,它將起作用:cv::DMatch tmpMatch = matches[i];cv::KeyPoint queryKp = keypointsA[tmpMatch.queryIdx];cv::KeyPoint trainKp = keypointsB[tmpMatch.trainIdx];cv::line(mRgb, queryKp.pt, trainKp.pt, cv::Scalar(255, 0, 0, 255), 1, 8, 0);這并不是說所有的OpenCV的功能沒有得到解決:只pt,queryIdx并trainIdx有。任何評論將不勝感激。
3 回答

慕村225694
TA貢獻1880條經驗 獲得超4個贊
在Eclipse環境中選擇的項目首選項中,轉到C / C ++常規->代碼分析->啟動。確保兩個復選框均未選中。關閉并重新打開該項目,或者重新啟動eclipse并重新生成該項目。
- 3 回答
- 0 關注
- 784 瀏覽
添加回答
舉報
0/150
提交
取消