- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试使用 OpenCV 构建项目,我从官方网站下载了 OpenCV SDK 3.1,但是在构建过程中出现错误
/Users/Mario/Downloads/OpenCV-android-sdk/sdk/native/jni/include/opencv2/core/mat.inl.hpp
Error:(571) undefined reference to 'cv::fastFree(void*)'
Error:(663) undefined reference to 'cv::Mat::create(int, int const*, int)'
Error:(682) undefined reference to 'cv::Mat::deallocate()'
这是我的 gradle.build,我使用 gradle-experimental:0.4.0
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.2"
defaultConfig.with {
applicationId = "pl.mariusz.opencv"
minSdkVersion.apiLevel = 17
targetSdkVersion.apiLevel = 23
versionCode = 1
versionName = "1.0"
}
task ndkBuild(type: Exec) {
commandLine '/Users/Mario/Library/Android/android-ndk-r10e/ndk-build', '-C', file('src/main').absolutePath
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}
}
android.ndk {
moduleName = "source_file"
cppFlags.add("-std=c++11")
cppFlags.add("-fexceptions")
cppFlags.add("-I${file("/Users/Mario/Downloads/OpenCV-android-sdk/sdk/native/jni/include")}".toString())
cppFlags.add("-I${file("/Users/Mario/Downloads/OpenCV-android-sdk/sdk/native/jni/include/opencv")}".toString())
stl = "gnustl_static"//"gnustl_static"//"gnustl_shared"//"stlport_static"
}
android.sources {
main {
jni{
source{
srcDirs = []
}
}
jniLibs {
source {
srcDirs = ['src/main/Libs']
}
}
}
}
android.buildTypes {
release {
minifyEnabled = false
proguardFiles.add(file('proguard-rules.txt'))
}
}
安卓.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCVROOT:= /Users/Mario/Downloads/OpenCV-android-sdk
OPENCV_LIB_TYPE=STATIC
include ${OPENCVROOT}/sdk/native/jni/OpenCV.mk
LOCAL_SRC_FILES := source_file.cpp
LOCAL_LDLIBS += -llog -ldl
LOCAL_MODULE := source_file
include $(BUILD_SHARED_LIBRARY)
和Application.mk
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi-v7a
APP_PLATFORM := android-17
我尝试将它与共享的静态 STL 混合使用,但仍然出现同样的错误,我该如何解决?
[编辑]
[解决方案]
它更像是妥协而不是真正的解决方案,但我将 gradle-experimental:0.4.0
改回 classpath 'com.android.tools.build:gradle:1.5.0'
并使用
gradle.properties
到项目根目录
android.useDeprecatedNdk=true
最佳答案
您必须将 opencv 库添加到您的链接器。为此,您必须做两件事: 1. 添加库文件; 2.添加库目录。
尝试
LOCAL_LDLIBS += -llog -ldl -LlibPath -lopencv_calib3d -lopencv_core
等等,以这种方式添加所有 opencv 库(或至少是您需要的库)。 -l 将自动采用文件名和后缀中的“lib”。-L
将告诉链接器在哪里可以找到库,因此请添加 opencv 库文件夹的绝对路径而不是 libPath
。参见 how to mention path of libraries in Android.mk file or Application.mk file?
试一试并告诉我新的错误信息。
关于android - OpenCV undefined reference `cv::fastFree(void*)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36174091/
我尝试使用 OpenCV 构建项目,我从官方网站下载了 OpenCV SDK 3.1,但是在构建过程中出现错误 /Users/Mario/Downloads/OpenCV-android-sdk/sd
在我更改了一些代码后,我在让 SWIG 包装器在 python 中工作时遇到了一些问题。我怀疑这与链接器有关。 我的问题是 this github :该文件按照自述文件中的描述进行编译,并且可以在 p
我有一个使用 OpenCV 的 C++ (ImageExtraction.cpp) 文件。这是 C++ 文件的快照。我想从我的 Android java 文件中调用这个 native C++ 文件。我
我在 Win8、最新的 MinGW 和 Eclipse Kepler R1、CDT 上开始了 opencv 2.4.7 的教程。 C++ 编译器包含引用 [path-to-opencv]\open24
我正在尝试让 C 程序调用使用 OpenCV 的 C++ 文件中的函数。我可以让 C 文件调用 C++ 文件中的基本整数函数并返回结果,但每当我尝试向 C++ 文件添加一些 OpenCV 代码时,我都
我正在尝试在 Android 中使用 CMAKE 实现 OpenCV310。我同时使用 dlib 库和 OpenCV 库。 Example project github link 在这个 github
我是一名优秀的程序员,十分优秀!