1

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

.../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)

有什么正确的方法吗?

4

1 回答 1

5

是的,你可以这么做。我使用 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)
于 2012-08-04T05:54:53.163 回答