Прежде всего, вот мои версии SDK просто для ясности:
- Версия Android Studio = 3.3.2
- Инструменты сборки Android SDK = до 28.0.3
- Android SDK Platform-Tools = 28.0.1
- Android SDK Tools = 26.1.1
- LLDB = 3.1 (libc ++, который поддерживает c ++ 17)
- CMake = 3.10.2.4988404
- NDK = 19.1.5304403
По сути, я пытаюсь использовать std::make_unique<>()
в своем файле native-lib.cpp.Я включил <memory>
, где определен make_unique. Android Studio выдает ошибку в редакторе, говоря: Cannot resolve namespace member 'make_unique'
.Однако, если я собираю проект, он прекрасно компилируется.
Я исследовал это и предпринял несколько попыток решить эту проблему путем изменения параметров моего компилятора (добавив -std=c++14
и -std=c++17
к моему build.gradle
file), а также добавив следующую строку (к CMakeLists.txt
) из oboe tutorial :
target_compile_options(native-lib
PRIVATE -std=c++14 -Wall -Werror "$<$<CONFIG:RELEASE>:-Ofast>")
Ни то, ни другое не имеет значения, так как libc ++ не должен поддерживать c ++17 функциональности.Я могу скомпилировать / собрать свой проект нормально даже с этим красным элементом в моей IDE.
Я также попытался удалить мои каталоги .gradle и .idea, затем очистил, повторно синхронизировал и снова собрал проект безбезрезультатно.
Это потенциальная ошибка в Android Studio, или кто-то еще заметил эту проблему?Любая помощь будет принята с благодарностью, но я полагаю, что на данный момент мне просто придется проигнорировать ее или использовать этот ответ: https://stackoverflow.com/a/24609331/10013384