Ответ 1
Наконец, я нашел решение: включите Автономная работа для gradle.
или используя CLI:
./gradlew --offline assembleDebugOrWhatever
Когда я вношу некоторые изменения в исходный код, Android Studio (фактически gradle) нуждается в перестройке проекта. Это очевидно.
Почему вторая сборка занимает почти такое же количество времени, как и первая сборка, даже если я не сделал изменения any в проекте? Когда я заглядываю в GradleConsole, он ждет задания "assemblyDubug". Я думаю, что gradle должен знать, что изменений нет и не должно тратить на него столько времени.
Наконец, я нашел решение: включите Автономная работа для gradle.
или используя CLI:
./gradlew --offline assembleDebugOrWhatever
Говорит ли консоль gradle
: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 question на gradle и веб-сайт разработчика Android статья об этом. Наконец, из моего личного опыта, когда дело касается разработки Android Studio и Eclipse для Android, вам нужно быть немного терпеливым. Надеюсь, это поможет в некотором роде.
Чтобы избежать пересоздания КАЖДОГО ВРЕМЕНИ, я перехожу к моим настройкам проекта проектa → Зависимости и вверх или вниз по одному из элементов моей библиотеки → Применить → Ок → Произвести регенерацию R.java. Вы также можете попытаться снять флажок " Использовать внешнюю сборку" в настройках компилятора:
Файл → Настройки (Ctrl + Alt + S) → Компилятор → Снимите флажок "Использовать внешнюю сборку"