Opencv示例在Android Studio中不起作用

时间:2018-09-08 07:22:37

标签: android opencv opencv4android

我安装了Android Studio 3.1.4,并下载了OpenCV-2.4.11-android-sdk。首先,我尝试运行OpenCV SDK随附的示例,例如人脸检测。当我在Android Studio中构建项目时,收到消息:

  

错误:您的项目包含C ++文件,但未使用受支持的文件   本机构建系统。考虑使用CMake或ndk-build集成。   有关更多信息,请访问:   https://d.android.com/r/studio-ui/add-native-code.html

必须在该站点上安装其所说的NDK,CMake和LLDB。但是已经是了。

有什么办法解决吗?

3 个答案:

答案 0 :(得分:1)

由于您具有C ++代码,并且项目目录中包含Makefile,在这种情况下,您只需要将Gradle链接到本​​机库:

  1. 在项目窗格中,在模块上右键单击,然后选择链接C ++ 用Gradle投影。

  2. 下拉列表中选择 CMake ndk-build ,具体取决于您的项目

    a。如果选择了 CMake ,请在项目中指定 CMakeLists.txt 脚本

    b。如果您选择 ndk-build ,请指定 Android.mk

PS: Android.mk 位于; app / build / intermediates / ndk / debug。

答案 1 :(得分:0)

它不起作用。现在,我创建了一个新项目。然后:

  1. 我单击File-> New-> Import Module,然后从我的OpenCV-android-sdk添加了java文件夹。
  2. 文件->项目结构->应用程序->依赖关系-> +模块依赖关系。我添加了openCVLibrary2411
  3. 右键单击应用程序:“新建”->“文件夹”->“ JNI文件夹”->“更改文件夹位置”:我更改为“ src / main / jniLibs /
  4. 我将“ OpenCV-android-sdk \ sdk \ native \ libs”(4个文件夹:armeabi,armeabi-v7a,mips,x86)的内容复制到了“ src / main / jniLibs /”中。
  5. 右键单击软件包:openCVLibrary2411->使用Gradle链接C ++项目:构建系统:ndk-build,Projekt路径:“ [MyFolder] \ OpencvTest7 \ app \ build \ intermediates \ ndk \ debug”

  6. 在MainActivity.java中,我在

  7. 之后添加
  

setContentView(R.layout.activity_main);

     

if(OpenCVLoader.initDebug()){

        Toast.makeText(getApplicationContext(), "opencv loaded successfully.", Toast.LENGTH_SHORT).show();
    }else
    {
        Toast.makeText(getApplicationContext(), "could not load opencv .", Toast.LENGTH_SHORT).show();
    }

运行项目时,我看到Toast“”无法加载opencv。“。

答案 2 :(得分:0)

就我而言,我在 local.properties 文件中缺少 ndk 的位置。请在 local.properties

中使用android sdk添加ndk路径
ndk.dir=/Path to the Sdk/Android/sdk/ndk-bundle
sdk.dir=/Path to the Ndk directory/Android/sdk