在Cygwin中设置NDK_MODULE_PATH变量

时间:2013-08-22 16:45:59

标签: android android-ndk

我正在尝试使用Android NDK创建一个模块,但我似乎无法让构建程序获取路径变量。我已经尝试在cygwin中将其设置为环境变量:

$ echo $NDK_MODULE_PATH
/cygdrive/c/dev/code/git/android_source

我也在Android.mk文件中指定它:

#=================================== 
LOCAL_PATH:= $(call my-dir)
NDK_MODULE_PATH := $(LOCAL_PATH)/../../code/git/android_source/
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := user
LOCAL_MODULE := libFilters
LOCAL_SRC_FILES := SkewFilter.cpp SkewFilter.h

LOCAL_LDLIBS := -llog
LOCAL_EXPORT_LDLIBS := -lz
LOCAL_SHARED_LIBS := libskia

include $(BUILD_SHARED_LIBRARY)
#=================================== 

$(call import-module,libskia)

最终结果仍是这样:

$ ndk-build
Android NDK: jni/Android.mk: Cannot find module with tag 'libskia' in import path
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?
Android NDK: The following directories were searched:
Android NDK:
jni/Android.mk:17: *** Android NDK: Aborting.    .  Stop.

任何人都知道我做错了什么?

我发现了这个问题How to specify directory for NDK_MODULE_PATH,但没有任何帮助。

1 个答案:

答案 0 :(得分:0)

我弄清楚我做错了什么。 Android.mk文件中的这一行需要更改:

$(call import-module,libskia)

$(call import-module,external/skia)

它不会对模块进行递归搜索,因此在调用import-module时,它需要相对于NDK_MODULE_PATH(NDK_MODULE_PATH + path_to_module)的完整路径。

ndk-build打印的错误消息似乎是错误的,因为它没有列出NDK_MODULE_PATH变量中的任何路径,但它们在那里并且它使用它们。

希望这有助于其他人。