Недавно я перешел с ndk-build на систему сборки cmake в Android Studio (я использую версию 3.2.1) и, поскольку у меня есть зависимости в моем коде C ++ от некоторых сторонних библиотек, я решил перейти на conan C ++ менеджер пакетов, чтобы упростить мой кросс-билдинг. Чтобы сделать это правильно, я решил попробовать это на небольшом примере, чтобы быть уверенным, что все будет работать так, как ожидалось.
Я следовал инструкциям Android студия интеграции страница и все компилируется и работает нормально, но я не могу отладить нативный код из Android Studio. Мои точки останова в коде C ++ игнорируются.
Когда я удалил все зависимости кода в библиотеку libpng и в CMakeLists.txt, закомментировал
conan_basic_setup(TARGETS)
Строка я смог снова отладить код C ++.
Я попытался покопаться в макросе cmake «conan_basic_setup», но я заблудился внутри.
Я даже попытался создать профиль отладки конана для кросс-компиляции, изменив
build_type=Release
в
build_type=Debug
в файле профиля, но без результата.
У кого-нибудь есть квитанция для правильной настройки для отладки?
Наконец мне удалось решить эту проблему, добавив параметр NO_OUTPUT_DIRS в макрос conan_basic_setup.
Так что вместо
conan_basic_setup(TARGETS)
так должно быть
conan_basic_setup(TARGETS NO_OUTPUT_DIRS)
Очевидно, что без этого параметра conan изменяет путь к bin / и lib / output и портит настройки Android-студии.
Теперь я могу отлаживать свой код.
Других решений пока нет …