Android NativeActivity项目中的源代码位置

Tut*_*men 1 android android-ndk

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

.../ProjectFolder/AndroidProjectFolder/jni/(sources and make files)
.../ProjectFolder/AndroidProjectFolder/(other android project files)
.../ProjectFolder/iosProjectFolder/(other ios project files)
Run Code Online (Sandbox Code Playgroud)

我想这样做:

.../ProjectFolder/src/(sources and make files)
.../ProjectFolder/AndroidProjectFolder/(other android project files)
.../ProjectFolder/iosProjectFolder/(other ios project files)
Run Code Online (Sandbox Code Playgroud)

有没有正确的方法呢?

小智 5

是的,你可以这样做.我使用jni上面的目录,例如MyProject/src /这个示例构建了一个共享库......你也可以构建静态库.注意$(调用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)
Run Code Online (Sandbox Code Playgroud)