无法在ndk中解析类型

时间:2012-08-29 05:05:28

标签: android android-ndk java-native-interface

在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

它在此代码中向我显示无法解析StoreJavaVMjobjectpthread_t。请帮帮我。

任何形式的帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

在C中,与Java不同,您拥有名称为storewatcher.c的文件和名称为storewatcher.h的文件。 .h文件不是自己编译的,您必须在一个或多个#include文件中使用.c指令才能使编译器识别.h文件,例如

#include "storewatcher.h"