2013-05-28 24 views
1

我无法找到Android NDK的module importation feature的工作示例。以下的Android.mk文件看起来是正确的,并且内部模块的构建和执行没有错误。然而,建立外部模块失败,出现以下的错误消息:Android NDK模块导入最简单的工作示例是什么?

的Android NDK:JNI /内/ Android.mk:内:LOCAL_MODULE_FILENAME不应包括文件扩展名
的Android NDK:JNI /内/ Android.mk :inner:LOCAL_MODULE_FILENAME不得包含文件扩展名
/home/caleb/dev/android-ndk-r8e/build/core/build-shared-library.mk:30:* Android NDK:正在中止。停止。

内,包含Android.mk文件:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := inner 
LOCAL_MODULE_FILENAME := libinner 
LOCAL_SRC_FILES := inner-module.c 

include $(BUILD_SHARED_LIBRARY) 

外,含有Android.mk文件:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := outer 

$(call import-module,inner) 

LOCAL_SHARED_LIBRARIES += inner 

include $(BUILD_SHARED_LIBRARY) 
+0

你是否声明了NDK_MODULE_PATH?如果是这样,它是什么? – ozbek

+0

NDK_MODULE_PATH被声明并设置为“jni”,它是内部模块所在的目录。如果我取消设置NDK_MODULE_PATH,则会得到一个不同的错误,表示构建系统无法找到内部模块。 – cqcallaw

回答

4

尝试发出呼叫导入模块在结束你的外部文件。在引用“内部”之前放置它并不是必须的,NDK文档实际上建议您将其放在最后。

2

你在做什么有几个问题,所以这里是应该看的东西。

内,包含Android.mk文件:

# save away the previous local path 
INNER_SAVED_LOCAL_PATH := $(LOCAL_PATH) 

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := inner 
LOCAL_MODULE_FILENAME := libinner 
LOCAL_SRC_FILES := inner-module.c 

include $(BUILD_SHARED_LIBRARY) 
# at this point LOCAL_MODULE_FILENAME will have been auto 
# set to libinner.so or similar by the call to BUILD_SHARED_LIBRARY 

# restore previous local path 
LOCAL_PATH := $(INNER_SAVED_LOCAL_PATH) 

外,包含Android.mk文件:

LOCAL_PATH := $(call my-dir) 

$(call import-module,inner) 
# at this point 
# a) we've still got the correct LOCAL_PATH as we didn't trash it in 
#  the included Android.mk file 
# b) LOCAL_MODULE_FILENAME is still set to libinner.so which if not 
#  unset will cause BUILD_SHARED_LIBRARY to complain 

include $(CLEAR_VARS) 
# we've now got a clean slate 

LOCAL_MODULE := outer 

# the build system has 'remembered' the inner module 
LOCAL_SHARED_LIBRARIES += inner 

include $(BUILD_SHARED_LIBRARY) 

我不知道这是否是方式它但它适用于我:)

相关问题