1. 程式人生 > >Eclipse中使用JNI編寫C程式碼時出現“Unresolved inclusion: ”的解決方案

Eclipse中使用JNI編寫C程式碼時出現“Unresolved inclusion: ”的解決方案

1 致謝

感謝初道網友(估計是這個名字吧 不過也有可能是轉載的 我還是由衷地表達一下謝意)

2 問題描述

今天在學習JNI程式設計時遇到一個問題 編寫C程式碼時 在標頭檔案引入的地方總會出現一個問題“Unresolved inclusion: <***.h>” 最常見的就是“Unresolved inclusion: <jni.h>” 基本上所有通用的標頭檔案都會出現這個錯誤 從而會導致後面的很多函式呼叫等等各種錯誤 其實歸根到底 就C語言基本的標頭檔案庫都沒有都正確的引入 所以我們需要進行一個引入的操作

3 解決方案

以下是我的解決方案 其中參考了上文中的資料 我覺得這種方案還是比較好的 不過其實可以進行簡化 大家可以看看作為參考

1 新增系統環境變數

首先是新增系統環境變數 也就是在“系統屬性”中 我的定義是 變數名:ANDROID_NDK_HOME 變數值:(NDK根目錄) 我的目錄是:E:\Path\android-ndk-r10e-windows-x86_64\android-ndk-r10e 最後一個末節點資料夾名是“android-ndk-版本號”

2 新增Eclipse中C/C++環境變數

然後進入Eclipse中進行設定 點選 Windows→Preferences→C/C++→Build→Environmen 這時,如果之前已經在系統環境變數中添加了NDK的根目錄,那麼點右邊的Select即可從系統中選擇該變數,選中後點OK
然後的效果如圖

之後列表中將出現匯入的環境變數 如圖

3 新增NDK的C語言通用庫

然後進入專案屬性設定,將對應的C語言通用庫新增進去:
Project→Properties→C/C++ General→Paths and Symbols
然後在Include選項卡中 點選Add
之後就要填入對應的內容 首先點選“Variables...” 然後選擇“ANDROID_NDK_HOME” 然後OK
變成這樣
之後需要在後面新增由 Android SDK 對應C語言庫的路徑 Directory:${ANDROID_NDK_HOME}/platforms/android-SDK版本號/arch-arm/usr/include SDK版本號跟專案的目標SDK版本相對應 SDK版本可以檢視project.properties檔案的target引數值 project.properties檔案就在Android專案的目錄中(一般是最後一個檔案)

我的Directory的路徑是:${ANDROID_NDK_HOME}/platforms/android-19/arch-arm/usr/include 大家可以根據上面的內容自行查詢 填好後點擊OK
我記得Eclipse應該會提示你“rebuild”之類的 這個選擇同意 這樣Eclipse才會使用更改後的設定對你的專案重新進行建立 這樣才能解決開頭出現的問題

3 測試

測試成功