最近在學習如何在C++里調用Java方法,遇到提示 #include <XXX.h> file not found 的問題。也google了好久都沒有找到合適的解決方案。
認真的研究了下xcode導入h頭文件的的工作機制,發現xcode里有個設置是配置查找頭文件位置的地方。特地總結了下這次的教訓。搞了我兩天 -_-||
我這里做的動作是Cocos2dx的C++調用Android里的Java方法,上代碼:
1.首先要保證,cpp調用文件的頭一定要引入你的JniHelper.h的正確路徑。我這里是
#include <platform/android/jni/JniHelper.h>2.當代碼里調用如下代碼的時候,不會正常調用API:
JniHelper::getEnv()如果不配置xcode自動搜索頭文件的配置,這里返回的應該是個int*類型的參數。肯定是不對的。應該是返回JNIEnv*類型的才對!
3.進入到上面的JniHelper.h頭文件內,會發現#include <jni.h> file not found的錯誤。
下面是解決方案:
1.xcode里點擊你項目本身,然后在右側找到project,然后Build Settings,在下面搜索欄里搜索“search”,找到下面Header Search Paths,雙擊編輯內容
2.在彈出框內的下方,有個“+”符號,添加條目,輸入的內容為你Android的NDK的路徑。我這里本機存放的路徑是:/opt/android-ndk-r9d/platforms/android-9/arch-arm/usr/include。
3.這回再回到JniHelper.h頭文件,你就會發現錯誤提示沒了,而且在cpp文件里,調用JniHelper::getEnv方法就可以正常使用了。