Android Studio не может найти ссылку на make_unique, но проект компилируется нормально - PullRequest
0 голосов
/ 11 марта 2019

Прежде всего, вот мои версии 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

...