NDK未识别某些头文件,如<;互斥锁>;及<;未来>; 我试图把C++文件集成到我的Android项目中。 我尝试使用Android Studio的ndk功能,但遇到了几个问题。因此,我通过在我的.gradle文件中进行以下更改,阻止了AndroidStudio创建自己的Android.mk文件- sourceSets.main { jni.srcDirs = [] jniLibs.srcDir 'src/main/libs' }

NDK未识别某些头文件,如<;互斥锁>;及<;未来>; 我试图把C++文件集成到我的Android项目中。 我尝试使用Android Studio的ndk功能,但遇到了几个问题。因此,我通过在我的.gradle文件中进行以下更改,阻止了AndroidStudio创建自己的Android.mk文件- sourceSets.main { jni.srcDirs = [] jniLibs.srcDir 'src/main/libs' },android,c++,android-studio,android-ndk,Android,C++,Android Studio,Android Ndk,我创建了一个gradle任务来编译我的库文件 task ndkBuild(type: Exec) { commandLine ndk_build_path, '-C', file('src/main/jni').absolutePath } tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn ndkBuild } 其中,gradle.properties文件中定义了“ndk_build_p

我创建了一个gradle任务来编译我的库文件

task ndkBuild(type: Exec) {
    commandLine ndk_build_path, '-C', file('src/main/jni').absolutePath
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn ndkBuild
}
其中,gradle.properties文件中定义了“ndk_build_path”

ndk_build_path=/Users/shadabunique/Library/Android/sdk/ndk-bundle/ndk-build
我使用的平台是Mac

<>我的C++文件中的头文件是-< /p>
#include <stdio.h>
#include <iostream>
#include <unistd.h>
#include <vector>

#include <ctime>
#include <sys/time.h>
#include <cmath>
#include <queue>
#include <mutex>
#include <future>
< >我把所有C++文件,Android.mk和Appultual.MK文件放在SRC/Ma/java/JNI文件夹中。

我得到以下错误-

mutex: No such file or directory
future: No such file or directory

请帮忙

在ndk上移植c++11代码时,我遇到了类似的问题

NDK(10e)不断抱怨gnustl_xxx或
stlport_xxx
,但我发现它与
c++\u static
配合得很顺利

因此,您可以尝试将其添加到Application.mk

APP_STL:=c++_static
APP_ABI := all
APP_STL :=c++_static
在Android.mk中

LOCAL_CPPFLAGS  += -std=c++11

我通过以下修改解决了这个问题:

Android.mk-

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := myLib
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libmyLib.so
LOCAL_LDLIBS += -llog

include $(PREBUILT_SHARED_LIBRARY)
Application.mk

APP_STL:=c++_static
APP_ABI := all
APP_STL :=c++_static

希望有人能在这方面得到一些帮助。

Q:你有没有尝试过
#包括“mutex.h”
#包括“future.h”
?我尝试过,但得到的错误消息是-mutex。h:没有这样的文件或目录我尝试过,但现在我得到了这个错误-错误:错误:未定义对“\uu atomic\u fetch\u add\u 4”的引用是否使用llvm或gcc?我使用的是
NDK\u TOOLCHAIN\u VERSION=4.9
quick search您获得的atomic解决方案,我已经完成了您共享的线程中提供的讨论。但它仍然不起作用,并抛出相同的错误。我在Android.mk文件中添加了LOCAL_LDLIBS+=-latomic,项目现在正在编译中。谢谢:)多个
APP\u STL:=
语句无效。只有最后一个有效。是的,请编辑这个答案,有人会弄错,只有最后一个“APP_SLT:=”有效,其他的被忽略。这是一个赋值运算符而不是“+=”,在这种情况下不能使用。