在android ndk中,当我使用帮助工具javah
生成的头文件时,它工作正常。但是当我创建一个扩展名为.h的普通文件并包含jni.h
和任何其他必需的头文件时,我无法使用所包含的头文件中的类型或关键字或任何函数,它总是显示“类型” 无论什么'都无法解决“,而我可以在机器上使用javah
工具生成头文件而无任何原因。
虽然我已经在C / C ++ General中包含了arm平台库 - >路径和符号 - >包含。它一直向我显示这个错误。
考虑下面这段代码。
#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
。请帮帮我。
任何形式的帮助将不胜感激。
答案 0 :(得分:2)
在C中,与Java不同,您拥有名称为storewatcher.c
的文件和名称为storewatcher.h
的文件。 .h
文件不是自己编译的,您必须在一个或多个#include
文件中使用.c
指令才能使编译器识别.h
文件,例如
#include "storewatcher.h"