Android ndk-build.cmd在编译过程中失败(opencv面检测)
我知道有很多类似的话题,但没有一个对我有帮助,我相信我已经试着运行了2天以上。 我想运行人脸检测样本,我被ndk构建卡住了 Application.mkAndroid ndk-build.cmd在编译过程中失败(opencv面检测),android,opencv,android-ndk,Android,Opencv,Android Ndk,我知道有很多类似的话题,但没有一个对我有帮助,我相信我已经试着运行了2天以上。 我想运行人脸检测样本,我被ndk构建卡住了 Application.mk APP_STL := gnustl_static APP_CPPFLAGS := -frtti -fexceptions APP_ABI := armeabi-v7a APP_PLATFORM := android-23 Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi-v7a
APP_PLATFORM := android-23
Android.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')
}
错误
错误的转换:“系统找不到指定的路径”
我已经检查了路径,它是存在的,我甚至把另一个项目的文件放在那里,但结果是一样的。我也尝试过从控制台手动运行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
make:进入目录'C:/Users/dpach/AndroidStudioProjects/TestOpenCv/app/jni'
[armeabi-v7a]“编译++拇指”:“基于检测的跟踪器这是NDK下载页面上的一个bug,请参见打开的页面
您可以在GitHub上使用更新更频繁的
在您的特定情况下,您的64位Windows上使用的是32位版本,这是次优版本。您可以下载操作系统的最新稳定版本。这是NDK下载页面上的一个错误,请参阅打开的页面
您可以在GitHub上使用更新更频繁的
在您的特定情况下,您的64位Windows上使用的是32位版本,这是次优版本。您可以下载操作系统的最新稳定版本。从命令行运行ndk build V=1
(不要忘记正确的-C
),然后您将看到是什么编译步骤导致了问题。您确定DetectionBasedTracker_jni.cpp文件与Android.mk位于同一jni目录下吗?@AlexCohn感谢您的时间。我已添加了参数并将输出粘贴到主题中。您能给出建议吗?是的,我确定此.cpp文件与Android.mkcheck位于jni目录下该文件C:/Users/dpach/android-ndk-r12/toolschains/arm-linux-androidabi-4.9/prebuilded/windows-x86_64/bin/arm-linux-androidabi-g++也存在。也许你应该下载ndk r12的更新版本。@AlexCohn我有目录windows
notwindowsx86_64
,其中就是你提到的文件。我下载了ndk yestrday@AlexCohn这就是答案。我复制并重命名了丢失的目录,因此名称与您提到的相同,并且它经历了整个过程。非常感谢您从命令行运行ndk build V=1
(不要忘记正确的-C
),然后您将看到是什么编译步骤导致了问题。您确定DetectionBasedTracker_jni.cpp文件与Android.mk位于同一jni目录下吗?@AlexCohn感谢您的时间。我已添加了参数并将输出粘贴到主题中。您能给出建议吗?是的,我确定此.cpp文件与Android.mkcheck位于jni目录下该文件C:/Users/dpach/android-ndk-r12/toolschains/arm-linux-androidabi-4.9/prebuilded/windows-x86_64/bin/arm-linux-androidabi-g++也存在。也许你应该下载ndk r12的更新版本。@AlexCohn我有目录windows
notwindowsx86_64
,其中就是你提到的文件。我下载了ndk yestrday@AlexCohn这就是答案。我已经复制并重命名了丢失的目录,因此名称如您所述,并且经过了整个过程。非常感谢
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