1

我一直在尝试构建 opencv 非自由库一段时间,当调用 ndk-build 函数时,它会因此错误而中止

Android NDK: ERROR:jni/Android.mk:opencv_java: LOCAL_SRC_FILES points to a missing file
Android NDK: Check that /03-Projects//WorkSpace//OpenCV-2.4.11-android-sdk//OpenCV-android-sdk//sdk//native//jni//../libs/armeabi/libopencv_java.so exists or that its path is correct
C:/android-ndk-r11c/build//../build/core/prebuilt-library.mk:45: ***
Android NDK: Aborting.  Stop.

我已经学习了本教程:教程 - 第 1 部分:在 Android NDK 项目中使用 OpenCV 非自由模块(SIFT、SURF)
我还尝试了 Kornel 提供的解决方案:Kornel's solution for building nonfree

这是我的文件层次结构:app -> src -> main -> jni

这是我的 Android.mk 文件

LOCAL_PATH  := $(call my-dir)
OPENCV_PATH := D:\\03-Projects\\WorkSpace\\OpenCV-2.4.11-android- sdk\\OpenCV-android-sdk\\sdk\\native\\jni

include $(CLEAR_VARS)
OPENCV_INSTALL_MODULES := on
OPENCV_CAMERA_MODULES  := off
include $(OPENCV_PATH)\\OpenCV.mk

LOCAL_C_INCLUDES :=             \
  $(LOCAL_PATH)             \
  $(OPENCV_PATH)/include

LOCAL_SRC_FILES :=              \
  nonfree_init.cpp          \
  sift.cpp                  \
  surf.cpp

LOCAL_MODULE := nonfree
LOCAL_CFLAGS := -Werror -O3 -ffast-math
LOCAL_LDLIBS := -llog -ldl

include $(BUILD_SHARED_LIBRARY)

我正在尝试使用为两者设置的 APP_ABI 构建 ndk:

x86 armeabi-v7a

4

1 回答 1

0

已解决的问题: 事实证明,我正在 android studio 项目的“main”下的文件夹中构建 ndk 项目,但由于某些原因无法正常工作。
我将文件夹移到另一个不属于任何android项目的目录中,问题就解决了。
虽然后来我遇到了其他一些不同的问题,但所有问题也都被解决了,我很快就会提供一个关于如何为更新版本的 opencv 构建非自由模块的分步解决方案,而不是上面教程中提到的。

于 2016-06-18T15:51:55.593 回答