Android Studio не развертывает изменения в приложении

96

Иногда такой сценарий возникает при разработке. Я бы внес изменения в свой исходный код, нажал «Сохранить все» и затем запустил, но это изменение, по-видимому, не отразилось бы в приложении - (я использую устройство для тестирования). Я даже могу удалить приложение на своем устройстве и снова нажать «Выполнить», но только что установленное приложение все еще не отразило изменение в исходном коде. Когда это происходит, мне нужно отредактировать исходный код, нажать «Выполнить», и, возможно, тогда новая версия с ожидаемыми мной изменениями будет на устройстве.

Я также попробовал это решение, но оно, похоже, не часто работает.

Android Studio - развертывает мое приложение без новых изменений

Просто Брайан
источник
пожалуйста, проверьте это и этот ответ.
Амит Вагела
Вы нашли способ решения этой проблемы? Я сталкивался с этим раньше, и очистить, перестроить или просто перезапустить Android Studio сработало. Но сегодня, кажется, НИЧТО не решает эту проблему. Я удаляю Studio и собираюсь установить ее снова и посмотреть, не изменится ли что-нибудь. Я не верю, что это проблема Instant Run. У меня есть подозрение, что это начинает происходить после ручной установки, которую я сделал сегодня с помощью adbтерминала. Вещи, которые я пробовал: - очистить, перестроить, аннулировать кеши и перезапустить Studio - принудительно остановить, очистить данные и удалить приложение с устройства - перезагрузить компьютер и устройство
Габриэль Гуларте

Ответы:

74

У меня такая же проблема. Эта ветка появилась первой, когда я ее искал. Решил (надеюсь на это), не используя функцию мгновенного запуска. Возможно, это не лучшее решение, но пока оно работает.

Просто зайдите в «Файл -> Настройки -> Сборка, выполнение, развертывание -> Мгновенный запуск» и просто отключите его. С этой Android Studio каждый раз строит с нуля, но это лучше, чем строить неправильно.

Миниатюра: почти каждая версия Android Studio содержит досадную ошибку. Они собираются выпустить версию 2, но ее бета-версия все еще содержит ошибки. Я надеюсь, что в ближайшем будущем они стабилизируют IDE.

Гоктай К.
источник
3
Я использую Android Studio 2.1, и у меня все еще та же проблема. Единственным решением было отключить мгновенный запуск :(
radu_paun
5
Есть эта проблема даже с отключенным "Instant Run", что очень раздражает !!! AS 2.1.2. 'Чистота' помогает ...
pvllnspk
1
Если кто-то еще тоже его ищет, в OS X вы можете найти его подFile -> Preferences -> Build, Execution, Deployment
Джан Лука Скочча,
Я думаю, что отключение мгновенного запуска - не лучшее решение. У него так много преимуществ и всего одна ошибка.
Милад Фаридния
3
Я использую Android Studio 3.2 Canary 13 с отключенным мгновенным запуском, и эта проблема все еще сохраняется.
mr5
95

РЕДАКТИРОВАТЬ2 (2020-03-09)

Если вы используете gradle 6.0 в своем gradle-wrapper.properties, вы также можете столкнуться с подобной ситуацией, потому что эта ошибка есть в версии 6.0. Вместо этого попробуйте 6.0.1.


Вчера (27.03.2018) Android Studio опубликовала официальное обновление с 3.0.1 до 3.1, и похоже, что многие (включая меня) снова сталкиваются с этой проблемой.

Отметьте комментарий # 5 здесь , ниже показано, как это было решено:

В Android Studio перейдите в Run> Edit Configuration.

Под Before launch:, если вы не можете найти Gradle-aware Make, как показано ниже:

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

Добавьте Gradle-aware Makeи оставив Taskпустым.

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

Предупреждение : я не знаю, что означают эти действия, и вызовут ли они какие-либо побочные эффекты. Спасибо, если кто-то может дать больше объяснений!

РЕДАКТИРОВАТЬ

Благодаря упомянутому @ChristopherSmit, на этой странице упоминается, что Gradle-aware makeозначает «Скомпилируйте проект и запустите Gradle».
Сначала я предполагаю, что это может Runзанять больше времени, даже если код не был изменен; но после тестирования второй раз все равно будет намного быстрее, если код не был изменен.
Учитывая тот факт, что это вариант по умолчанию, если вы создаете новый проект с использованием AS 3.1, я думаю, что эта конфигурация довольно безопасна.

Сира Лам
источник
1
Вы найдете объяснение этого здесь: developer.android.com/studio/run/rundebugconfig.html . В таблице ниже «Определите операции перед запуском»
Кристофер Смит
Спасибо! Я потратил более 24 часов на исправление кода и недоумение, почему это изменение кода не работает. Я понятия не имел, что было что-то подобное.
Bhavesh Bansal
НЕ РАБОТАЕТ: Ошибка при создании зависимостей, разделенных APK com.android.ide.common.process.ProcessException: не удалось выполнить aapt
android51130
1
@ android51130 На самом деле я нашел «больший пост» здесь . Кажется, отключение мгновенного запуска решит проблему.
Сира Лам
@SiraLam "run" отлично работает с отключенным мгновенным запуском, проблема в том, что "здесь что-то происходит" с мгновенным запуском в студии 3.1. Мне нужен мгновенный запуск, и вам тоже :)))
android51130
40

У меня была такая же проблема, используя Android Studio 2.0.0, я решил ее, перестроив мой проект.

Build > Rebuild Project

Изображение графического интерфейса пользователя

или с помощью Clean and Rerun

Run > Clean and Rerun

Очистить и повторить

Рюдигер
источник
Нужно ли мне делать это каждый раз, когда я вношу какие-либо изменения в свои файлы XML? Как я вижу, всякий раз, когда я вношу изменения в XML-файл анимации. Он не развертывает новые изменения, пока я снова не очищу и не восстановлю приложение
очищу
вот в чем проблема - приходиться делать это с каждым изменением .. давай гугл, исправь это дерьмо - заставь "запустить" для сохранения, сборки и развертывания.
NBApps
10
2018 - AS 3.2.0, и нам все еще предстоит с этим разобраться
Андроидерсон
2
Я серьезно столкнулся с этой проблемой сразу после обновления AS 3.0 до 3.1. Мне каждый раз приходится перестраивать проект ....
Сира Лам
4
Та же проблема после обновления AS с 3.0 до 3.1.
Бандзио
11

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

Если у вас возникли проблемы с макетами, как у меня, вы можете обнаружить, что вам нужно обновить макет в папке res> layout-v17 . Я внес изменения через Design View в макете папке , и эти изменения , казалось, автоматически распространяются на макет-v17 , на начальном этапе. Однако более поздних изменений НЕ БЫЛО.

Проверьте папку res> layout-v17 и посмотрите , отражают ли файлы .xml в этой папке изменения, которые вы видите в папке res> layout . Вы, вероятно, обнаружите, что это не так. Исправьте это и повторно разверните. Как и я, вы должны увидеть новые модификации кода.

Надеюсь это поможет.

Алек Слодовска
источник
2

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

Мне действительно интересно, работает ли это и с некоторыми другими людьми. Давайте попробуем и дадим мне знать.

угур
источник
Для приложения, ориентированного на реакцию, решение заключалось в том, чтобы выйти и перезапустить упаковщик реакции
Майк Лайонс,
2

В Android Studio 3.6.3 вы можете включить автоматический перезапуск в случае сбоя мгновенного запуска.

Просто зайдите в Файл | Настройки | Сборка, выполнение, развертывание | Развертывание и установите флажки.

Настройки

Симона Стоянова
источник
1

Также я решил это, не используя функцию Instant Run. Возможно, это не лучшее решение, но пока оно работает. Я использую Android Studio 2.0 beta 2 ...

Рокко Фоти
источник
1
пожалуйста, подробно расскажите о своих ответах, чтобы другие пользователи могли получить пользу ... добавляйте шаг за шагом и т. д.
Хуан Боэро
4
Кто-то уже отправил это в качестве ответа. Вместо повторной публикации рассмотрите возможность проголосовать за существующий ответ, когда у вас будет достаточно репутации.
OhBeWise
1

Для меня мгновенный запуск был кошмаром, время сборки составляло 2-5 минут, и, как ни странно, часто недавние изменения не включались в сборки. Я настоятельно рекомендую отключить мгновенный запуск и добавить эту строку в gradle.properties:

android.enableBuildCache=true

Первая сборка для больших проектов часто занимает некоторое время (1-2 минуты), но после кеширования последующие сборки обычно выполняются быстро (<10 секунд).

Получил этот совет от пользователя reddit / u / QuestionsEverythang, который избавил меня от множества хлопот с мгновенным запуском!

Landonmutch
источник
1

Убедитесь, что у вас нет альтернативного макета. Если вы это сделаете, вы можете изменить один и развернуть другой.

nPcomp
источник
0

Та же проблема возникла после того, как я обновил buildVersion с 23. Пытался удалить AVD и воссоздать синхронизацию с файлами Gradle. Ничего не помогло. Полная переустановка Andriod Studio устранила проблему. Возможно, это не решение, но это сработало только для меня.

Канн
источник
0

У меня сработало то, что я добавил плохой xml в один из моих XML-файлов макета, попытался построить и получить ошибку, затем отменить изменение и снова отладить. Не красиво, но довольно быстро.

Еще одна вещь, которая, кажется, работает большую часть времени: отключите и снова подключите телефон / устройство разработки. Похоже, это вызывает переустановку, по крайней мере, на моем компьютере с Linux.

Гуз
источник
0

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

  1. Нажмите "Недавние приложения".
  2. Просто закройте мое приложение из списка
  3. Запустите приложение еще раз

Это занимает меньше времени, чем Очистка или Восстановление .

ОБНОВИТЬ

Перезапустить приложение тоже работает:

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

Милад Фаридния
источник
0

У меня такая же проблема, я снял флажок «Мгновенный запуск», а также попробовал «очистить и запустить», но он не работает. Я пытался синхронизировать его с градиентом, но проблема все равно была. Он разрешается только в том случае, если я полностью перестрою его, удалив папку сборки.

Леон
источник
0

У меня была такая же проблема, я пробовал все, например, очистить и перестроить, gradle-sync, даже удалить и установить приложение, но заметил, что сработало. Другие устройства работали нормально, но на моем мобильном телефоне проблема все еще сохранялась. Затем я понял, что случайно создал дубликат файла макета layout-v26и внес изменения в этот файл, поэтому дизайн не обновлялся. Поэтому я просто удалил дубликат макета из файла, Project>app>main>res>layout-v26и проблема была решена. Поэтому убедитесь, что вы не создали ни одного из этих файлов, не осознавая этого.

Нитиш Кумар
источник
-1

Вы можете понять, развернут код или нет, поместив точку останова отладки в новую строку, которую вы добавили. Если на точке останова стоит крестик, это означает, что она не развернута. Вам нужно очистить и пересобрать проект.

Мурат
источник