Android build с retrolambda игнорирует изменения исходного кода

В нашем проекте мы используем gradle + retrolambda + proguard. Для инкрементной сборки Retrolambda установлено значение false.

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

gradlew clean assembleDebug

но в нашем случае это занимает около 2,30 м. Это слишком долго.

Как мы можем решить эту проблему?

Ответ 1

Обычно proguard используется только для производственных сборок. Вы можете временно отключить его, удалив minifyEnabled true и/или shrinkResources true из вашего gradle.build, чтобы узнать, вызывает ли это узкое место.

В качестве альтернативы перейдите в Android Studio → Preferences → Build, Execution, Deployment → Compiler → и добавьте "--offline" в качестве параметра командной строки. Это остановит gradle от загрузки зависимостей для каждой сборки.

Если вы используете последнюю версию Android Studio (через Канарский канал), вы можете включить компиляцию hotspot с помощью "Instant Run": Android Studio → Настройки → Сборка, выполнение, развертывание → Мгновенный запуск → Проверка "Включить мгновение" бег...'. Просто имейте в виду, что эта функция все еще экспериментальна, и вы можете столкнуться с ошибками.