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
가 해결 될 수없는이 코드에서 저를 보여줍니다. 도와주세요.
어떤 종류의 도움을 주시면 감사하겠습니다.
어떻게 CFS 파일을 만들고이 헤더 파일을이 C 파일에 포함하면 문제가 해결되는지 알 수 없습니다. 아무도 그것이 어떻게 발생하는지 또는 어떤 C 파일에이 헤더 파일을 포함시켜야하는 것처럼 말할 수 있습니까? – KunalK
게시 된 코드 조각은'.h' 파일입니다. 그렇지 않습니까? '.cpp' 파일에 포함 시키면 컴파일 오류가 발생합니까? 'struct "주위에서'extern"C "'를 제거하려고 시도 했습니까? –
@AlexCohn, 그렇습니다 .h 파일입니다. extern "C"arround 구조체를 제거하려고 시도했지만 다시는 그 부분이 나를 도와주지 못했습니다. 하지만이 헤더 파일을 대상 C 파일에 포함 시키면 빨간색 오류 줄이 갑자기 사라져서 .h 파일의 모든 JNI 구문을 사용할 수있게되었습니다. – KunalK