1

在 android ndk 中,当我使用由帮助工具生成的头文件时,javah它工作正常。但是当我创建一个带有 .h 扩展名和包含的普通文件jni.h以及任何其他必需的头文件时,我无法使用包含的头文件中的类型或关键字或任何函数,它总是向我显示“Type ' whatever ' 不能得到解决”,而我可以在机器生成的头文件中使用javah工具毫无理由地做同样的事情。

虽然我在 C/C++ General -> Paths and Symbols -> Include 中包含了 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无法解决。请帮我。JavaVMjobjectpthread_t

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

4

1 回答 1

2

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

#include "storewatcher.h"
于 2012-09-11T06:05:44.773 回答