NDK на Android Studio постоянно перестраивается, занимает вечно - PullRequest
1 голос
/ 23 сентября 2019

У меня большой проект Android Studio, в котором есть отдельный модуль, содержащий нативный код.Нативная сборка определяется с помощью CMake и включает в себя набор исходных файлов кода C ++.

Я заметил, что с момента последнего обновления (может быть Android Studio 3.5) NDK перестраивает все ВСЕ ВРЕМЯ.Это может произойти с небольшими изменениями в коде Java, переключением вкуса в несвязанном модуле в проекте, увеличением кода версии и т. Д.

Это серьезная проблема, поскольку она может тратить 10 минут за раз безпричина.Я не смог найти разумного способа профилировать сборки NDK в Android Studio и проверить, что вызывает перестройку или что занимает так много времени.

К сожалению, файлы сборки проекта слишком велики, чтобы прикреплять их здесь.Какие-нибудь указатели на вещи, чтобы заботиться?

1 Ответ

0 голосов
/ 23 сентября 2019

Часто это помогает разделить проект AS таким образом, что часть C ++, возможно, с ее обертками Java, становится отдельным (библиотечным) модулем.Надеемся, что этот модуль будет более стабильным, не чувствительным к приращениям кода версии приложения.

Такой модуль не должен определять многие разновидности, но должен тщательно соответствовать вариантам других модулей.Иногда имеет смысл даже отключить «отладочные» варианты для такой библиотеки.Команда NDK предприняла попытку лучше справиться с переключением между отладочной и выпускной сборкой, но это все еще сложно.

Но если после этих улучшений незначительные изменения в проекте по-прежнему вызывают массовое восстановление, я бы предложилрассмотрим ccache.

...