1
在Android的NDK當我使用由助手工具生成javah
它工作正常的頭文件來解決。但是當我創建一個普通的文件,擴展名爲.h和包括jni.h
和任何其他需要的頭文件我不能夠使用的類型關鍵字,或從包含的頭文件中的所有功能,它總是讓我看到「類型‘無論’無法解決「,而我可以在機器生成的頭文件與javah
工具沒有任何原因的同樣的事情。類型不能在NDK
雖然我已經包括手臂平臺庫在C/C++常規 - >路徑和符號 - >包括。它不斷向我顯示這個錯誤。
請考慮下面的一段代碼。
#include "store.h"
#include <jni.h>
#include <stdint.h>
#include <pthread.h>
#ifndef _STOREWATCHER_H_
#define _STOREWATCHER_H_
#define SLEEP_DURATION 5
#define STATE_OK 0
#define STATE_KO 1
#ifdef __cplusplus
extern "C" {
#endif
typedef struct{
Store* mStore;
JavaVM* mJavaVM;
jobject mStoreFront;
pthread_t mThread;
int32_t mState;
}StoreWatcher;
#ifdef __cplusplus
}
#endif
#endif
它讓我在這段代碼中Store
,JavaVM
,jobject
,pthread_t
無法解析。請幫幫我。
任何形式的幫助將不勝感激。
不知道如何,但我的問題是通過創建一個C文件並將此頭文件包含到此C文件中解決的。任何人都可以告訴我它是如何發生的,還是像我必須將這個頭文件包含在任何C文件中? – KunalK
已發佈的代碼是'.h'文件,不是嗎? 你的問題是將它包含在'.cpp'文件中導致編譯錯誤? 你有沒有嘗試刪除'爲extern 「C」'繞'struct' –
@AlexCohn,是的,它是.h文件。我試過去除extern「C」arround結構,但再次沒有幫助我。但是在將這個頭文件包含在我的目標C文件中之後,紅色的錯誤行突然消失了,然後我就可以使用.h文件中的所有JNI語法。 – KunalK