Intereting Posts
Как я могу создать прямоугольник с двумя изогнутыми сторонами в XML-чертеже? Как обновить содержимое фрагмента из активности (viewpager)? Закладки уик-энда tabroidid обновить каждый удар Как создать вертикальную карусель в Android? Rx Наблюдаемые периодические значения испускания Выделение цвета текста с помощью Html.fromHtml () в Android? Как справиться с эффектом Ripple на 9-patch и CardView и управлять состоянием селектора? Адаптер с hasStableIds с использованием GUID или строк в качестве идентификаторов Завершение работы эмулятора Android на FOREVER Недостатки в применении Multidexing для Android AndroidHttpClient против HttpUrlConnection для API уровня 9 и выше Невозможно создать обработчик внутри потока, который не вызвал Looper.prepare () в CountDownTimer Функция google play alpha и бета-тестера Android – создание Webview DomStorage настойчиво после закрытия приложения Android-устройство не отображается в списке adb

Почему Android Studio перестраивает проект так медленно, даже если никаких изменений в источниках нет?

Когда я вношу некоторые изменения в исходный код, Android Studio (на самом деле gradle) должен перестроить проект. Ясно.

Почему вторая сборка занимает почти такое же количество времени, как и первая сборка, даже если я не внес никаких изменений в проект? Когда я заглядываю в GradleConsole, он ждет выполнения задачи «assemblyDubug». Я думаю, что градле должен знать, что изменений нет и не стоит тратить на него столько времени.

Solutions Collecting From Web of "Почему Android Studio перестраивает проект так медленно, даже если никаких изменений в источниках нет?"

Наконец, я нашел решение: включите автономную работу для градиента.

Введите описание изображения здесь

Или с помощью CLI: ./gradlew --offline assembleDebugOrWhatever

Говорит ли консоль градиента :app:assemeble UP-TO-DATE ?

Если вы посмотрите на конфигурацию запуска, вы можете заметить на самом дне Before Launch: Gradle-aware Make

Это просто говорит ему перекомпилировать (если необходимо) перед запуском, но это деление делегируется Gradle. Gradle будет только на самом деле перекомпилировать, если он обнаружит, что это необходимо, но задача assemble все равно должна пытаться запустить, чтобы обнаружить UP-TO-DATEness. Поэтому он говорит, что он работает, но на самом деле ничего не делает. Когда я запускаю его два раза подряд, первый раз требуется некоторое время, чтобы сделать все, НО во второй раз он просто быстро запускает список задач (с кучей UP-TO-DATE) и разворачивается в телефон / эмулятор.

Это не проблема сама по себе. И это не имеет ничего общего с Android Studio поскольку Gradle – это просто Android-плагин, который помогает вам создавать ваши проекты. Вам нужно полностью понять, что делает gradle , чтобы знать, почему Android Studio использует его всякий раз, когда вы запускаете свои приложения. Взгляните на этот хороший вопрос SO о граде и статье веб – сайта разработчика Android . Наконец, из моего личного опыта, когда дело касается разработки Android Studio и Eclipse для Android, вам нужно быть немного терпеливым. Надеюсь, это поможет в некотором роде.

Чтобы избежать пересоздания КАЖДОГО ВРЕМЕНИ, я перехожу к настройкам моего модуля -> Зависимости и вверх или вниз по одному из элементов моей библиотеки -> Применить -> Хорошо -> Произвести регенерацию R.java. Вы также можете попытаться снять флажок « Использовать внешнюю сборку » в настройках компилятора:

Файл -> Настройки (Ctrl + Alt + S) -> Компилятор -> Снимите флажок "Использовать внешнюю сборку"