小编Jam*_*ama的帖子

构建OpenCV for Android并将其与NDK一起使用

背景:我目前正在Android Studio上为Moverio BT 200增强现实眼镜开发应用程序.我正在使用OpenCV,特别是库的arUco模块.该模块必须与NDK一起使用.此外,它不在稳定版本上,所以我自己编译了库(使用本指南:https://zami0xzami.wordpress.com/2016/03/17/building-opencv-for-android-from-source/) .图书馆的建设进展顺利.之后,我做了一个android studio项目(customOCVtest).我在使用OpenCV与Android Studio和NDK时总是这样做,除了这次是使用自定义构建.我检查了库是否正确加载:

private static final String OCVdevTAG = "OCVmainAct";

static {
    System.loadLibrary("native-lib");
    if(!OpenCVLoader.initDebug()) {
        Log.d(OCVdevTAG, "OpenCV not loaded");
    } else {
        Log.d(OCVdevTAG, "OpenCV loaded");
    }
}
Run Code Online (Sandbox Code Playgroud)

我构建时确实加载了库.

现在出现了问题:当我尝试在我的本机代码中实际使用arUco模块时(这是我的native-lib.cpp):

#include <jni.h>
#include <string>
#include <opencv2/aruco.hpp>

extern "C" {
jstring
Java_com_jambonsama_customocvtest_MainActivity_stringFromJNI(
    JNIEnv *env,
    jobject /* this */) {
std::string hello = "Hello from C++";
cv::Ptr<cv::aruco::Dictionary> dict = cv::aruco::getPredefinedDictionary(cv::aruco::DICT_6X6_250);
cv::Mat marker;
cv::aruco::drawMarker(dict, 25, 200, marker, 1);
return env->NewStringUTF(hello.c_str());
}
}
Run Code Online (Sandbox Code Playgroud)

gradle sync工作,但我无法构建.我收到以下错误:

Error:FAILURE: Build …
Run Code Online (Sandbox Code Playgroud)

android opencv cross-compiling android-ndk

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

android-ndk ×1

cross-compiling ×1

opencv ×1