Не позволяйте Android Studio индексировать файлы заголовков библиотекAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Не позволяйте Android Studio индексировать файлы заголовков библиотек

Сообщение Anonymous »

Короче говоря, я не хочу, чтобы Android Studio индексировала файлы заголовков C++, содержащиеся в определенных папках, поскольку этот процесс занимает очень много времени.
Я пробовал пометить их как Исключено из IDE, но безрезультатно.
Есть ли у меня другие варианты?
Предварительно
Я работаю над проект, содержащий одну из моих библиотек C++, которую при создании для Android необходимо связать с несколькими библиотеками.
  • Библиотека линейной алгебры Эйгена (которая является заголовком только).
  • Выпуск OpenCV для Android
  • Boost для Android в виде готовых статических библиотек, с которыми я взаимодействую, используя файлы заголовков
В этом сценарии зависимости (Eigen, OpenCV, Boost) представляют собой статические файлы в моем проекте Android Studio, а моя библиотека извлекается из отдельного репозитория.
Моя проблема
Мне не нужно изменять исходные коды моей библиотеки внутри Android Studio, мне нужно только связать ее с зависимостями и собрать для использования в моем Android Приложение.
Когда Android Studio запускается, она проходит длительный процесс обновления индексов для файлов заголовков, которые не являются частью моего активного процесса разработки внутри IDE.
Я бы предпочел, чтобы Android Studios Linter/LSP полностью их игнорировала.
Процесс включает в себя индексирование > настройку конфигураций сборки > повторное индексирование и настройка конфигурации запуска, что занимает от 15 до 20 минут на моем компьютере с оперативной памятью 32 ГБ и процессором 5 ГГц. В течение этого времени я не могу в полной мере использовать возможности IDE. Это раздражает, и я хочу решить эту проблему.
Изображение

Мой вопрос
Я пробовал выбрать папку > щелкните правой кнопкой мыши > пометить каталог как > исключенный, но это ничего не меняет. Файлы заголовков все равно индексируются.
Можно ли еще что-нибудь сделать, чтобы предотвратить массовое индексирование?
Ниже я добавил настройку сборки на основе CMake для части NDK моего проекта, если это поможет.
Настройка сборки
Все связаны вместе в файле CMakeLists.txt
# path/to/my_library/CMakeLists.txt

add_library(my_library
/path/to/stuff.cpp
)

if (ANDROID)
### Eigen ###
if (NOT TARGET Eigen3::Eigen)
add_subdirectory(eigen)
endif ()
if (NOT TARGET prmcl)
add_subdirectory(prmcl/library)
endif ()
### OpenCV ###
set(OpenCV_DIR path/to/opencv-android-sdk/OpenCV-android-sdk/sdk/native/jni)
find_package(OpenCV REQUIRED)
### Boost ###
set(Boost_DIR path/to/boost/${CMAKE_ANDROID_ARCH_ABI})
add_library(boost_math STATIC IMPORTED)
set_target_properties(boost_math PROPERTIES IMPORTED_LOCATION ${Boost_DIR}/lib/libboost_math_c99.a)
# amalgamate the used boost libraries
set(Boost_LIBRARIES boost_math)

target_include_directories(my_library
PUBLIC
${Boost_DIR}/include
)
target_link_libraries(my_library
${OpenCV_LIBS}
${Boost_LIBRARIES}
Eigen3::Eigen
)
endif ()

Затем я могу использовать my_library для связывания с моей оболочкой NDK в корневом файле CMake проекта
# path/to/CMakeLists.txt
project("NativeWrapperToMyLibrary")
add_subdirectory(my_library)
add_library(${CMAKE_PROJECT_NAME} SHARED
src/wrapper.cpp
)
target_link_libraries(${CMAKE_PROJECT_NAME}
android
log
my_library
)


Подробнее здесь: https://stackoverflow.com/questions/791 ... ader-files
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»