0

我正在尝试使用 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.

有人知道我做错了什么吗?

我发现了这个问题如何为 NDK_MODULE_PATH 指定目录,但这没有任何帮助。

4

1 回答 1

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 变量中的任何路径,但它们在那里并且它使用它们。

希望这对其他人有帮助。

于 2013-08-23T13:57:36.837 回答