【发布时间】:2014-01-13 09:15:29
【问题描述】:
假设我的 Android 项目使用具有下一个结构的 jni:
jni__
|__src__
|__first.c
|__second.c
|
|__include__
|__first.h
src目录下有两个源文件,src/include目录下有一个头文件。
first.h:
#include <string.h>
#ifndef FIRST_H
#define FIRST_H
extern char * text();
#endif
first.c:
#include "first.h"
char * text() {
...
return ...;
}
second.c:
#include "first.h"
#include <jni.h>
jbyteArray Java_com_example_android_MainActivity_getText( JNIEnv* env, jobject this) {
char * str = text();
...
return str;
}
如何编译此源码并正确指定Android.mk文件中带有头文件的目录?
现在我的 Android.mk 文件如下:
LOCAL_PATH:= $(call my-dir)
LOCAL_SRC_PATH := $(LOCAL_PATH)/../src
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../src/include
include $(CLEAR_VARS)
LOCAL_MODULE := mylib
LOCAL_SRC_FILES := $(LOCAL_SRC_PATH)/first.c \
$(LOCAL_SRC_PATH)/second.c
include $(BUILD_SHARED_LIBRARY)
但是当我尝试构建这个源代码时,编译因错误而终止:"first.h: No such file or directory".
【问题讨论】:
标签: android android-ndk include java-native-interface