android - 在包含 BUILD_SHARED_LIBRARY 之前缺少 LOCAL_MODULE

标签 android c++ eclipse opencv android-ndk

我正在尝试在 Eclipse 中设置一个 NDK 项目。我已经构建了 NDK,因为我的示例程序运行正常。但是,现在当我运行我的代码时,我遇到了这个错误

*** Android NDK: Missing LOCAL_MODULE before including BUILD_SHARED_LIBRARY in jni/Android.mk . Stop.

我试过通过这个问题解决 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

最佳答案

不要在你的 make 文件中使用反斜杠,这太危险了。即使在 Windows 上,您也可以使用正斜杠,即将所有 \ 更改为 /。这将立即解决您的问题。

具体来说,您定义 LOCAL_C_INCLUDES 的行以 \ 结尾,这意味着对于 ma​​ke 它不会结尾。 ma​​ke 尽职尽责地加入下一行,所以它实际看到的是这样的

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

但实际上,在您include OpenCV.mk 后,无需重新定义LOCAL_C_INCLUDES。此脚本负责为您设置包含路径、标志和库依赖项。

关于android - 在包含 BUILD_SHARED_LIBRARY 之前缺少 LOCAL_MODULE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33238163/

相关文章:

java - 初始化变量时应用程序抛出 Null Exception 错误

java - 在 Eclipse 中找不到 java 虚拟机

android - 如何在vim中解析xml文件?

c++ - 了解 HttpOpenRequest() 和其他 Wininet 函数

java - Activity 未停止响应

c++ - TCP 响应暂停

c++ - 在模板化类中,如何定义具有不同类型名称的函数

android - 添加黑莓后,无法在 Eclipse 中使用 Android 构建项目

android - 如何将 FragmentTabHost 标签放在屏幕底部?

Java Android FCM 将数据解析为对象