2015-10-20 90 views
1

我想在Eclipse中設置NDK項目。我已經建立了NDK,因爲我的示例程序正常工作。但是,現在當我運行我的代碼,我面對這個錯誤在包含BUILD_SHARED_LIBRARY之前缺少LOCAL_MODULE

***的Android NDK:包括JNI/Android.mk BUILD_SHARED_LIBRARY之前缺少LOCAL_MODULE。停止。

我曾嘗試過這個問題 Android NDK: Missing LOCAL_MODULE before including BUILD_SHARED_LIBRARY

但是,它不工作解決它。請幫幫我。 以下是我Android.mk文件

LOCAL_PATH:= $(call my-dir) 
include $(CLEAR_VARS) 
OPENCV_CAMERA_MODULES:= off 
OPENCV_MK_PATH:D:\FYP\darwinwallet-master\OpenCV-2.4.9-android-sdk\sdk\native\jni\OpenCV.mk 
OPENCV_LIB_TYPE:=STATIC 
OPENCV_INSTALL_MODULES:=on 
include $(OPENCV_MK_PATH) 
LOCAL_C_INCLUDES:=D:\FYP\darwinwallet-master\OpenCV-2.4.9-android-sdk\sdk\native\jni\include\ 
LOCAL_MODULE:=native_wallet 
LOCAL_SRC_FILES:=jni_recognizer.cpp NativeVision/vision.cpp 
LOCAL_CFLAGS=-ffast-math -O3 -funroll-loopsLOCAL_LDLIBS+=-llog -ldl 
include $(BUILD_SHARED_LIBRARY) 

而以下是我build-shared-library.mk

LOCAL_BUILD_SCRIPT := BUILD_SHARED_LIBRARY 
LOCAL_MAKEFILE  := $(local-makefile) 
$(call check-defined-LOCAL_MODULE,$(LOCAL_BUILD_SCRIPT)) 
$(call check-LOCAL_MODULE,$(LOCAL_MAKEFILE)) 
$(call check-LOCAL_MODULE_FILENAME) 
my := TARGET_ 
$(call handle-module-filename,lib,$(TARGET_SONAME_EXTENSION)) 
$(call handle-module-built) 
LOCAL_MODULE_CLASS := SHARED_LIBRARY 
include $(BUILD_SYSTEM)/build-module.mk 
+0

** build-shared-library.mk **不是你的;它是NDK的一部分,並且您預計不會太多地擺弄它。你可以從你的問題中刪除它。 –

回答

1

不要在make文件使用反斜槓,這太危險。即使在Windows上,也可以使用正斜槓,即將所有\改爲/。這將立即解決您的問題。

具體地,在其中定義LOCAL_C_INCLUDES線與\這意味着爲使,它並沒有結束結束。 使盡職盡責地加入下一行,所以它實際上看到的是像

… 
LOCAL_C_INCLUDES:=D:\…\include\LOCAL_MODULE:=native_wallet 
LOCAL_SRC_FILES:=jni_recognizer.cpp NativeVision/vision.cpp 
… 

但實際上,沒有必要後您include OpenCV.mk重新定義LOCAL_C_INCLUDES。該腳本負責爲您設置包含路徑,標誌和庫依賴關係。