基于Android NativeActivity项目的源代码位置

问题描述:

有没有办法将我的源代码(包括所有.h .cpp和.mk文件)重定位到项目文件夹之外?换句话说,我想将jni文件夹的内容移出android项目文件夹。现在,我的项目的物理结构是这样的:基于Android NativeActivity项目的源代码位置

.../ProjectFolder/AndroidProjectFolder/jni/(sources and make files) 
.../ProjectFolder/AndroidProjectFolder/(other android project files) 
.../ProjectFolder/iosProjectFolder/(other ios project files) 

我要让这样的:

.../ProjectFolder/src/(sources and make files) 
.../ProjectFolder/AndroidProjectFolder/(other android project files) 
.../ProjectFolder/iosProjectFolder/(other ios project files) 

有没有做任何正确的方式?

是的,你可以做到这一点。我使用jni上面的目录作为实例MyProject/src /这个示例构建一个共享库...你也可以构建静态库。注意$(call my-dir)/ ..'call my-dir'''指向包含Android.mk文件的jni目录。所以添加/ ..备份一个目录。

LOCAL_PATH := $(call my-dir)/.. 

include $(CLEAR_VARS) 

FILE_LIST := $(wildcard $(LOCAL_PATH)/src/*.cpp) 

ifdef DEBUG 
CONFIG_DIR := Debug 
LOCAL_CFLAGS := -Werror -Wno-psabi -O0 -ggdb -D_DEBUG 
LOCAL_CXXFLAGS := -Werror -Wno-psabi -O0 -ggdb -D_DEBUG -fexceptions 
LOCAL_LINK_FLAGS := -ggdb 
else 
CONFIG_DIR := Release 
LOCAL_CFLAGS := -Werror -Wno-psabi -O2 -DNDEBUG 
LOCAL_CXXFLAGS := -Werror -Wno-psabi -O2 -DNDEBUG -fexceptions 
endif 

LOCAL_MODULE := MyProject 
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%) 
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include 
LOCAL_LDFLAGS := $(LOCAL_LINK_FLAGS) 
LOCAL_LDLIBS += -lGLESv2 -landroid -llog -lGLESv1_CM -lEGL 

include $(BUILD_SHARED_LIBRARY) 
+0

谢谢!但是如果我将它们移出项目目录(我的意思是IDE,而不是comoiler),源文件在eclipse中将不可见? – Tutankhamen 2012-08-04 06:05:03

+0

只需将eclipse项目移动到Project文件夹或在源目录中创建另一个项目,并在工作区中包含多个项目以在eclipse中查看它。我并不特别喜欢强迫工作空间作为目录的eclipse。 – 2012-08-04 06:13:38