未找到安卓工作室'opencv2/core/core.hpp'文件
Android Studio 'opencv2/core/core.hpp' file not found
我正在使用Android Studio 2.3,但出现致命错误:"opencv2/core/core.hpp"文件未找到
我看到许多类似的问题不是构建 Android.mk,但我的 Android.mk 应该已经构建了。
如果更改包括 Android.mk 中的 OpenCV.mk 路径,它将报告找不到文件错误,因此我认为 Android.mk 已经包含在构建过程中并且文件路径是正确的。
如果包含路径正确,OpenCV.mk 应该找到文件夹 opencv2,但我仍然收到找不到文件错误。
有没有其他方法可以在Android Studio中设置包含路径?
我的构建脚本出了什么问题?
原生库.cpp
#include <DetectionBasedTracker.h>
#include <opencv2/core/core.hpp>
#include <opencv2/contrib/detection_based_tracker.hpp>
Android.mk
LOCAL_PATH := $(call my-dir)
OPENCV_CAMERA_MODULES:=off
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=SHARED
include $(LOCAL_PATH)/../../../../../../../../OpenCV-android-sdk/sdk/native/jni/OpenCV.mk
LOCAL_C_INCLUDES+=$(LOCAL_PATH)/../../../../../../../../OpenCV-android-sdk/sdk/native/jni/include/
LOCAL_SRC_FILES := native-lib.cpp
LOCAL_LDLIBS += -llog -ldl
LOCAL_MODULE:= native-lib
include $(BUILD_SHARED_LIBRARY)
Application.mk
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi armeabi-v7a arm64-v8a
build.gradle
android {
......
......
sourceSets.main {
jni.srcDirs = [] //disable automatic ndk-build call
}
task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {
commandLine 'F:\Android_SDK\ndk-bundle\ndk-build.cmd',
'-C', file('src\main\jni').absolutePath,
'NDK_DEBUG=1',
'V=1'
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}
}
文件结构如下
app/src/main/jni/Android.mk
app/src/main/jni/Application.mk
app/src/main/jni/native-lib.cpp
app/build.gradle
您是否将OpenCV库作为模块导入,并且您可以在 Android.mk 文件中尝试这样做吗
?LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#opencv
OPENCVROOT:= F:/Android/Libs/OpenCV
OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=SHARED
include ${OPENCVROOT}/sdk/native/jni/OpenCV.mk
LOCAL_SRC_FILES := native-lib.cpp
LOCAL_LDLIBS += -llog
LOCAL_MODULE := MyOpenCVLibs
include $(BUILD_SHARED_LIBRARY)
在命令行下的build.gradle中,您可以像这样添加,
commandLine "F:\Android\NDK\android-ndk-r14\build\ndk-build.cmd",
'NDK_PROJECT_PATH=build/intermediates/ndk',
'NDK_LIBS_OUT=src/main/jniLibs',
'APP_BUILD_SCRIPT=src/main/jni/Android.mk',
'NDK_APPLICATION_MK=src/main/jni/Application.mk'
相关文章:
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 什么是"#include <boost/functional/hash.hpp> "?
- 使用Vulkan hpp vk::enumerateInstanceVersion()会导致segfault
- 如何将class.cpp和class.hpp编译为一个.o文件
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- C++包含来自 #include "DevEngine/Core.h" 的错误
- g++ -I 和 -L 命令来查找不起作用的 .hpp 文件
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- 是否可以在Linux上使用.Net Core 3.1创建C++/CLI代码的C#DLL
- 构建 TensorFlow r1.14 C++文件时缺少文件"tensorflow/core/framework/types.pb.h"
- 未找到安卓工作室'opencv2/core/core.hpp'文件
- 致命错误:opencv2/core.hpp:opencv4 中没有此类文件或目录编译终止
- 错误:opencv2/core/core.hpp:没有这样的文件或目录
- 在SWIG中包含OpenCV core.hpp时出现语法错误
- Mac OSX:构建opencv_contrib致命错误:找不到文件 opencv2/core.hpp
- 如何使用imgproc.hpp和core.hpp解决错误
- 致命错误 C1083:无法打开包含文件:"opencv2/core.hpp":没有此类文件或目录
- OpenCV opencv2/core/core.hpp:没有这样的文件或目录
- 由于删除了函数,不同的boost版本导致boost/core/ref.hpp失败
- OpenCV3.10 core.hpp必须在c++中编译