У меня установлена последняя версия 64-разрядного NDK (r10c), а последняя версия Android Studio я могу скачать (0.8.14).Использование потоков и мьютексов в Android Studio с ndk 10c
Я делаю несколько вызовов JNI для использования String, Vector, Atomic и т. Д. Но я не могу понять, как использовать thread и mutex.
Оба они дают мне ту же ошибку
Error:(92, 5) error: 'thread' is not a member of 'std'
Error:(93, 5) error: 'mutex' is not a member of 'std'
я уверен, что NDK использует 4.9 ГНУ-libstdC++. Если я помещу в #error в файл, я вижу, что моя ошибка и компиляция прекращаются. Похоже, что я не пропускаю никаких определений, так как я могу помещать #error внутри класса и видеть его.
Вот НДК конфигурации в моем build.gradle
ndk {
moduleName "myLib"
ldLibs "log"
stl "gnustl_shared"
cFlags "-std=c++11 -frtti -fexceptions -pthread"
}
-frtti и -pthread, кажется, не имеет никакого значения. Я также пробовал stl gnustl_shared, а также gnustl_static, без разницы.
вы уверены, что это 4,6 по умолчанию? Я уверен, что он использует 4.9, потому что, когда я редактирую файл потока в папке 4.9 NDK, я получаю ошибки сборки. В приведенной статье также указано, что в настоящее время 64bit использует 4.9 по умолчанию. –
.. но вы не строите для 'APP_ABI = arm64-v8a', не так ли? –
Нет, но разве это не говорит, что если я отредактирую поток, включите файл в 4.9, а #error показывает, что я определил, какой файл включен? Этот комментарий был мне непонятным, если они имели в виду 64-разрядную версию ndk или 64-битную сборку. –