android - ndk-build.cmd 编译失败(opencv 人脸检测)

标签 android opencv android-ndk

我知道有很多类似的主题,但没有一个对我有帮助,我相信我会尝试运行这个超过 2 天。 我想运行人脸检测示例,但卡在 ndk 构建上

应用程序.mk

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi-v7a
APP_PLATFORM := android-23

安卓.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=SHARED
include C:/Users/dpach/OpenCV-android-sdk/sdk/native/jni/OpenCV.mk

LOCAL_SRC_FILES  := DetectionBasedTracker_jni.cpp
LOCAL_C_INCLUDES += $(LOCAL_PATH)
LOCAL_LDLIBS     += -llog -ldl

LOCAL_MODULE     := detection_based_tracker

include $(BUILD_SHARED_LIBRARY)

应用程序.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    defaultConfig {
        applicationId "threewe.testopencv"
        minSdkVersion 21
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    sourceSets.main {
        jniLibs.srcDir 'src/main/libs'
        jni.srcDirs = [] //disable automatic ndk-build call
    }
    task ndkBuild(type: Exec) {
        commandLine 'C:\\Users\\dpach\\android-ndk-r12\\ndk-build.cmd', '-C', file('jni').absolutePath
    }
    tasks.withType(JavaCompile) {
        compileTask -> compileTask.dependsOn ndkBuild

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha2'
    compile project(':libraries:opencv')
}

错误

System nie moľe odnale«† okre?lonej ?cieľki.
make: *** [C:/Users/dpach/AndroidStudioProjects/TestOpenCv/app/obj/local/armeabi-v7a/objs/detection_based_tracker/DetectionBasedTracker_jni.o] Error 1
make: Leaving directory `C:/Users/dpach/AndroidStudioProjects/TestOpenCv/app/jni'
:app:ndkBuild FAILED
Error:Execution failed for task ':app:ndkBuild'.
> Process 'command 'C:\Users\dpach\android-ndk-r12\ndk-build.cmd'' finished with non-zero exit value 2

错误的翻译:“系统找不到指定的路径”

我检查了路径,它存在我什至把另一个项目的文件放在那里,但结果是一样的。我也尝试过从控制台手动运行 ndk-build.cmd 但结果是一样的,所以这不是 Android Studio 问题。我不知道我还能做什么:(

//编辑

添加了V=1参数

make: Entering directory `C:/Users/dpach/AndroidStudioProjects/TestOpenCv/app/jni'
[armeabi-v7a] "Compile++ thumb": "detection_based_tracker <= DetectionBasedTracker_jni.cpp"
C:/Users/dpach/android-ndk-r12/build//../toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-g++ -MMD -MP -MF C:/Users/dpach/AndroidStudioProjects/TestOpenCv/app/obj/local/armeabi-v7a/objs/detection_based_tracker/DetectionBasedTracker_jni.o.d -fpic -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes  -g -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp  -fno-exceptions -fno-rtti -mthumb -Os -DNDEBUG  -I"C:/Users/dpach/OpenCV-android-sdk/sdk/native/jni/include/opencv" -I"C:/Users/dpach/OpenCV-android-sdk/sdk/native/jni/include" -IC:/Users/dpach/AndroidStudioProjects/TestOpenCv/app/jni -IC:/Users/dpach/android-ndk-r12/build//../sources/cxx-stl/gnu-libstdc++/4.9/include -IC:/Users/dpach/android-ndk-r12/build//../sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -IC:/Users/dpach/android-ndk-r12/build//../sources/cxx-stl/gnu-libstdc++/4.9/include/backward -IC:/Users/dpach/AndroidStudioProjects/TestOpenCv/app/jni -DANDROID -fPIC -DANDROID -fsigned-char -Wa,--noexecstack -Wformat -Werror=format-security    -frtti -fexceptions  -isystem C:/Users/dpach/android-ndk-r12/build//../platforms/android-23/arch-arm/usr/include -c  C:/Users/dpach/AndroidStudioProjects/TestOpenCv/app/jni/DetectionBasedTracker_jni.cpp -o C:/Users/dpach/AndroidStudioProjects/TestOpenCv/app/obj/local/armeabi-v7a/objs/detection_based_tracker/DetectionBasedTracker_jni.o 

最佳答案

这是 NDK 下载页面上的错误,请参阅 issue你的真的打开了。

您可以使用 wiki page在 GitHub 上,更新更频繁。

在您的特定情况下,您在 64 位 Windows 上使用的是 32 位版本,这是次优的。可以下载最新稳定版r12b为您的操作系统。

关于android - ndk-build.cmd 编译失败(opencv 人脸检测),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37928061/

相关文章:

c++ - 返回简历 :Mat pointer to main function

c++ - 双 * android ndk 崩溃

java - Android java.lang.illegalargumentException 无法找到 native 库 main

android - 使用 OpenCV 依赖 Android NDK 编译代码

android - ImageView 上的 setPadding 崩溃 Activity

android - 亚行是什么?

android - 如何使用 Android Gradle 插件 3.0.0 将所有 flavor 变体发布到 Maven?

android - 未从 .apk 安装 ARMv8 库

compiler-construction - TI 微 Controller 上的 Opencv

python - 使用 OpenCV 进行模板匹配时如何避免误报?