Android Studio не помнит новые изменения и автоматически возвращается к старым версиям файлов иногда

Время от времени у меня проблема с новой Android Studio. Иногда при редактировании, если я ошибаюсь в одном из своих файлов, тогда попытайтесь его построить, студия Android вернется с некоторой ошибкой "Gradle". Затем он автоматически вернется к моему исходному коду (таким образом, удалив все мои изменения). Мне не обязательно нравиться такое поведение, но я могу справиться с этим. Однако... иногда, во время SAVING и редактирования, он попадает в это странное состояние, когда Android Studio будет помнить об ошибке и не позволит мне ее исправить. То есть он будет продолжать восстанавливать OLD-версию файла с ошибкой в ​​нем, независимо от того, сколько раз я пытаюсь ее исправить и повторно сохранить. Примером этого является следующее. В следующем фрагменте документа XML я ошибочно добавил [android: backcolor = "# 00000000" ] в один из моих файлов макета XML...

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@android:id/text1"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:textAppearance="?android:attr/textAppearanceListItemSmall"
          android:gravity="center_vertical"
          android:paddingLeft="16dp"
          android:paddingRight="16dp"
          android:textColor="#111"
          android:background="?android:attr/activatedBackgroundIndicator"
          android:backcolor="#00000000"
          android:minHeight="?android:attr/listPreferredItemHeightSmall"/>

После попытки сборки Android Studio вернулась со следующей ошибкой: "Ошибка: (1, -1) Gradle: идентификатор ресурса не найден для атрибута" backcolor "в пакете" android ".

Конечно, я попытался просто УДАЛИТЬ строку нарушения, которую я добавил, чтобы вернуть код в исходное состояние, прежде чем добавить строку. Я сохранил его (т.е. Save-all/etc...), затем попытался перестроить. К моему ужасу, Android Studio ВОССТАНОВИТ плохую версию, снова вернув ошибочную [android: backcolor = "# 00000000" ] строку обратно в файл.

Я также попробовал СБЕРЕГАТЬ (сохранить все), уйти, вернуться, снова перестроить, и почти все варианты этого. Хотя единственный способ, который, по-видимому, исправит его, - это полностью выйти из Android Studio, снова запустить его и повторить попытку.

Я предполагаю, что это действительно "функция" и имеет какое-то отношение к источнику управления и/или Gradle, и что я пока еще не совсем понимаю его. Я также предполагаю, что есть некоторая настройка где-то, чтобы скорректировать и/или исправить это, но я не знаю, что происходит и что делать, чтобы исправить это.

Есть ли способ исправить это раздражающее поведение Android Studio?

Ответ 1

У меня была аналогичная проблема, когда я делал ошибку в файле strings.xml, например, когда у меня есть апостроф, не предшествующий "\". Проблема в том, что при сбое сборки Android Studio автоматически открывает приложение \build\intermediates\res\merged\debug\values ​​\ values.xml, чтобы показать мне сломанную строку. Если я попытаюсь исправить строку в этом файле, это не принесет пользы, потому что когда я пытаюсь перестроить, strings.xml все еще сломан. Главное, чтобы вы делали исправление в файле strings.xml, а не в файле values.xml.

Ответ 2

У меня такая же проблема, но я выполнил следующие шаги и решил мою проблему,

1) Отредактируйте файл макета и откройте тот же файл макета в блокноте, если вы можете увидеть обновленные данные в блокноте, а затем проблему с Studio Synch. затем повторите синхронизацию проекта.

2) Если отредактированный файл макета не отражает новые изменения в файле Notepad, сначала переконфигурируйте проект Studio и выполните шаг 1.

Я надеюсь, что это также решит вашу проблему.

Ответ 3

У меня все еще есть эта проблема, единственный способ, который я нашел, чтобы исправить это - перейти на терминал в студии android и запустить

rm -R app/build/intermediates/data-binding-layout-out

Android Studio не удаляет последнюю сборку макета, когда вы пытаетесь снова скомпилировать. Как только вы сделаете это вручную, все вернется в норму.

Ответ 4

В то время как эта проблема по-прежнему случается (на данный момент последняя версия равна 0,5. +), простым обходным решением является вручную редактировать файл xml с помощью текстового редактора, а затем сохранять его. Android Studio затем принудительно повторно синхронизирует эти файлы.

Ответ 5

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

Ответ 6

У меня была такая же ошибка, и я сошел с ума Я решил это, скопировав файл проекта в другой каталог, а затем импортировав его в качестве нового проекта, и проблема исчезла