2013-05-28 31 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) 

我不知道這是否是方式它但它適用於我:)

相關問題