Как я могу использовать «Применить изменения», если я использую Crashlytics? - PullRequest
3 голосов
/ 13 мая 2019

Я использую Android Studio 3.5 Beta 1. Я решил попробовать «Применить изменения».Мгновенный запуск был проблематичным, поэтому мы отключили его на годы.Я надеялся, что это будет работать лучше.

Если я попытаюсь нажать кнопку «Применить изменения кода», я получу сообщение об ошибке в окне «Выполнить»:

Changes were not applied.
Modifying resources requires an activity restart.
Resource 'assets/crashlytics-build.properties' was modified.
Apply changes and restart activity

crashlytics-build.properties содержит комментарии, которые говорят

#This file is automatically generated by Crashlytics to uniquely
#identify individual builds of your Android application

И действительно, у него есть свойство build_id, которое предположительно изменяется для каждой сборки Gradle.А поскольку Gradle запускает сборку всякий раз, когда я использую кнопки «Применить изменения кода» или «Применить изменения и перезапустить активность», сборка Gradle изменяет файл, что не позволяет завершить Apply Run.

Единственная информация, которую я получаю »я обнаружил, что в Интернете по этому поводу был один комментарий Reddit с высказыванием

Я понял, как тяжело, что crashlytics + proguard ломает мгновенный запуск

Так что это будеткажется я не единственный человек с этой проблемой.Удаление Crashlytics не вариант.Также я не хочу отключать его каждый раз, когда собираюсь выполнить некоторую отладку, а затем снова включать его.

Кнопка «Применить изменения и перезапустить активность» работает.Активность, которую я использую, перезапускается, и изменения видны.Я попытался сравнить время этого с использованием обычной кнопки «Выполнить».«Применить изменения и перезапустить активность» занимает столько же времени.Единственное преимущество, по-видимому, состоит в том, что вместо того, чтобы каждый раз переходить через приложение к этому экрану, я могу оставаться на этом экране и перезагружать изменения.Это хорошее преимущество, я просто ожидал большего.

Могу ли я что-нибудь сделать, чтобы «Применить изменения» работали для меня более эффективно?

1 Ответ

3 голосов
/ 14 мая 2019

Вы можете отключить это поведение для отладочных сборок в Crashlytics: https://docs.fabric.io/android/crashlytics/build-tools.html#optimize-builds-when-you-re-not-proguarding-or-using-beta-by-crashlytics

Установите ext.alwaysUpdateBuildId на false в вашем файле Gradle для типа отладочной сборки:

android {
    buildTypes {
        debug {
          // Only use this flag on builds you don't proguard or upload to beta-by-crashlytics
          ext.alwaysUpdateBuildId = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...