標籤:
有時候,自己下載的或者拷貝過來的JNI項目出現莫名錯誤,通常是找不到標頭檔,可能解決方案如下:
Removing the C nature:
The only way I could find to reliably removed the C nature from the project was by hand editing Eclipse‘s .project file for the project.
Close the Eclipse project (e.g. by quitting Eclipse).
Open the .project file in a text or xml editor. There will be at least 2 <buildCommand> nodes that need to be removed. Remove the <buildCommand> node with name org.eclipse.cdt.managedbuilder.core.genmakebuilder and all its children, and the <buildCommand> node with name org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilderand its children. Finally, remove the lines:
<nature>org.eclipse.cdt.core.cnature</nature> <nature>org.eclipse.cdt.core.ccnature</nature> <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
Completely remove the .cproject file.
Adding back the Android Native nature
Reopen the project in Eclipse. Then right-click on the project in the Project Explorer, and from the "Android Tools" contextual menu, choose "Add Native Support...".
參考:http://stackoverflow.com/questions/23122934/eclipse-adt-unresolved-inclusion-jni-h Android JNI項目提示“Unresolved inclusion: <jni.h>”可能的其他解決方案:
- Paths and Symbols中路徑不正確,考慮修改Android.MK檔案內容,比如增加空行等(注意Android檔案中不需要有LOCAL_C_INCLUDES欄位 ,系統會根據LOCAL_SRC_FILES自動添加需要的標頭檔,否則標頭檔將出現二義性),重新編譯一次項目,Android.MK檔案中LOCAL_SRC_FILES所依賴的標頭檔將會在Project Properties -> C/C++ General -> Paths and Symbols中被自動添加;
- string.h、jni.h等C標頭檔“Unresolved inclusion”,考慮: NDK Project -> New -> Folder -> Advanced -> Link to alternate location(Linked Folder),添加:D:\ADT\android-ndk-r9d\platforms\android-18\arch-arm\usr\include;
- 考慮:properties--->C/C++ General,關閉Code Analysis功能,解決大部分錯誤;
使用NDK編譯含JNI的Android項目常見問題解決方案