Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android NativeActivity项目中的源代码位置_Android_Android Ndk - Fatal编程技术网

Android NativeActivity项目中的源代码位置

Android NativeActivity项目中的源代码位置,android,android-ndk,Android,Android Ndk,有没有办法将我的源代码(包括所有.h.cpp和.mk文件)重新定位到项目文件夹之外?换句话说,我想将jni文件夹的内容移出android项目文件夹。现在,我的项目的物理结构如下所示: .../ProjectFolder/AndroidProjectFolder/jni/(sources and make files) .../ProjectFolder/AndroidProjectFolder/(other android project files) .../ProjectFolder/ios

有没有办法将我的源代码(包括所有.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)
我想这样做:

.../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”指向包含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)

是的,你能做到。我使用jni上面的目录,例如MyProject/src/这个示例构建了一个共享库……您还可以构建静态库。注意$(调用我的目录)/。。“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)

非常感谢。但是如果我将源文件从项目目录中移出(我是说IDE,而不是comoiler),那么源文件在eclipse中就不可见了?只需要将eclipse项目上移到项目文件夹中,或者在源目录中创建另一个项目,并在工作区中包含多个项目,就可以在eclipse中看到它。我也不是特别喜欢eclipse强制工作区基于目录。谢谢!但是如果我将源文件从项目目录中移出(我是说IDE,而不是comoiler),那么源文件在eclipse中就不可见了?只需要将eclipse项目上移到项目文件夹中,或者在源目录中创建另一个项目,并在工作区中包含多个项目,就可以在eclipse中看到它。我也不是特别喜欢eclipse强制工作区基于目录。