当前位置: 首页 > 知识库问答 >
问题:

在Android Studio(OpenCV)中使用NDK

纪成礼
2023-03-14
    null

但是,当我使用ndk-build运行Android.mk时,会出现以下错误:

Nothing to be done for `.../MyProject/jni/Android.mk'.

这是Android.mk的内容:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on

include /.../MyProject/jni/OpenCV.mk

我在建图书馆,有什么帮助吗?

向jni添加application.mk文件

APP_ABI:=armeabi APP_PLATFORM:=android-9

将Android.mk文件添加到jni(更改LOCAL_SRC_FILES和LOCAL_MODULE值)

将此代码添加到gradle

    sourceSets.main.jni.srcDirs = []

    // take the built .so files and place them in jniLibs
    //noinspection GroovyAssignabilityCheck
    task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {
        commandLine "$ndkDir/ndk-build",
                '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'
    }

    tasks.withType(JavaCompile) {
        compileTask -> compileTask.dependsOn ndkBuild
    }

将javah设置为外部工具(指向您的安装目录)程序:/usr/bin/javah params:-v-jni-d$modulefiledir$/src/main/jni$fileclass$Working dir:$sourcePathentry$

在包含本机方法的。java文件上运行Javah->header被创建

定级中的特殊模块:

defaultConfig {
    minSdkVersion 9
    targetSdkVersion 21
    versionCode 4
    versionName '1.11'

    ndk {
        moduleName "hello"
    }
}

完成了!

共有1个答案

陶柏
2023-03-14

我发布了一篇关于如何使用OpenCV构建Android NDK应用程序的新文章,包括使用Android Studio和Gradle。更多的信息可以在这里看到,我总结了两种方法:

(1)在Gradle任务中运行ndk-build

sourceSets.main.jni.srcDirs = []

task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {
    ndkDir = project.plugins.findPlugin('com.android.application').getNdkFolder()
    commandLine "$ndkDir/ndk-build",
            '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'
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn ndkBuild
}

(2)使用外部工具运行ndk-build

 类似资料:
  • 我想做一个应用程序,使用谷歌翻译API。自从我添加了 我的构建中的依赖项。gradle我有个错误: 现在必须显式声明注释处理器。发现编译类路径上的以下依赖项包含注释处理器。请将它们添加到annotationProcessor配置中。-自动值-1.2。jar(com.google.auto.value:auto-value:1.2)或者,设置android。defaultConfig。javaCom

  • 问题内容: 我正在编写一个程序,该程序需要在Tkinter窗口中显示视频流。由于还将有用于执行各种功能的按钮,因此我使用网格来组织一切。 以下代码是从“显示”网络摄像头序列TkInter修改而来的,在我的Raspberry Pi上可以正常工作: 但是,将其与Tkinter结合使用是行不通的。(在下面的内容中,我尝试注释掉Display 1,Display 2和都不显示。) 如何显示视频? 问题答案

  • 问题内容: 在我的xcode项目中添加OpenCV 2框架后,我尝试搜索samlpes或与swift集成的教程。 有没有很好的教程呢? 问题答案: OpenCV是用C ++编写的框架。苹果的参考资料告诉我们 您不能将C 代码直接导入Swift。而是为C 代码创建一个Objective-C或C包装器。 因此,您不能直接在一个快速的项目中导入和使用OpenCV,但这实际上一点都不好,因为您(需要)继续

  • 问题内容: 我想使用Android Studio使用Gradle构建工具开发应用程序。我无法在上插入存储库和库。我的文件如下: 如何在项目中添加OpenCV? 问题答案: 您可以在Android Studio中轻松完成此操作。 请按照以下步骤将Open CV作为库添加到您的项目中。 libraries在项目主目录下创建一个文件夹。例如,如果您的项目是OpenCVExamples,则将创建一个Ope

  • 我想使用Android Studio开发一个应用程序使用Gradle构建工具。我无法在上插入OpenCV repo和库。我的文件如下所示: 我如何在我的项目中添加OpenCV?

  • 问题内容: 我刚刚在Windows 7计算机上安装了OpenCV。结果,我得到一个新目录: 在此目录中,我有两个文件:和。 然后,我尝试使用from Python。我执行以下操作: 结果,我收到以下错误消息: 我究竟做错了什么? 添加 至于有人建议在这里,我抄的内容的。它没有帮助。 加了2 我的环境变量具有以下值: 我需要改变什么吗?我需要添加一些东西吗? 加3 我认为我的问题很笼统:如何使用图书