Не удается обновить Android Studio - Отказано в доступе и java.io.FileNotFoundException
Я пытаюсь обновить Android Studio с 0.5.1 до 0.5.2 на двух отдельных машинах Windows, один с 64-разрядным Windows 7 Pro и один с 64-разрядным Windows 7 Enterprise.
Я получаю сообщение о нормальном обновлении:
![enter image description here]()
... и если я выберу "Обновить и перезагрузить", загрузится исправление и выйдет IDE, но затем я получу следующий диалог:
![enter image description here]()
Я не могу изменить любые записи столбца "Решение". Если я нажму "Продолжить", я получаю следующее сообщение, как показано ниже (изображение и текст, поэтому его копирование/вставка/поиск):
![enter image description here]()
Temp. directory: C:\Users\Sean\AppData\Local\Temp\
java.io.FileNotFoundException: C:\Program Files (x86)\Android\android-studio\lib\jsch.agentproxy.usocket-nc.jar (Access is denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
at com.intellij.updater.Utils.copyStreamToFile(Utils.java:135)
at com.intellij.updater.CreateAction.doApply(CreateAction.java:52)
at com.intellij.updater.PatchAction.apply(PatchAction.java:140)
at com.intellij.updater.Patch$3.forEach(Patch.java:198)
at com.intellij.updater.Patch.forEach(Patch.java:248)
at com.intellij.updater.Patch.apply(Patch.java:194)
at com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:86)
at com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:77)
at com.intellij.updater.Runner.doInstallImpl(Runner.java:307)
at com.intellij.updater.Runner.doInstall(Runner.java:268)
at com.intellij.updater.Runner.access$000(Runner.java:18)
at com.intellij.updater.Runner$2.execute(Runner.java:258)
at com.intellij.updater.SwingUpdaterUI$7.run(SwingUpdaterUI.java:230)
at java.lang.Thread.run(Thread.java:744)
Когда я нажимаю "Выход", Android Studio снова открывается и сообщает мне, что обновление все еще доступно.
Я обновил Android Studio ранее, используя этот же метод на обеих машинах без проблем.
Так как я считаю, что это какая-то ошибка с Android Studio, относящаяся к более новым версиям, я открыл Issue 67794 в трекере по проблеме AOSP.
ИЗМЕНИТЬ
Я смог обновить с 0.5.2 до 0.5.3 сегодня на обеих машинах, не сталкиваясь с этой проблемой. Мне было показано приглашение безопасности Windows для установщика JetBrains, как и в предыдущих успешных обновлениях, и обновление завершено успешно, без необходимости запуска Android Studio с повышенными разрешениями. Таким образом, кажется, проблема была чем-то специфичным для патчей 0.5.1 или 0.5.2.
ИЗМЕНИТЬ
Я столкнулся с аналогичной ошибкой при попытке обновления с Android Studio 0.6.0 до 0.6.1:
Temp. каталог: C:\Users\barbeau\AppData\Local\Temp\
+ ---------------- Не удалось выполнить операцию с файлом. Это может быть связано с тем, что файл заблокирован другим выражение. Попробуйте закрыть любое приложение который использует обновляемые файлы, затем нажмите "Повторить". + ----------------
com.intellij.updater.RetryException: невозможно удалить файл C:\Program Files (x86)\Android\android-studio1\lib\openapi.jar at com.intellij.updater.BaseUpdateAction.replaceUpdated(BaseUpdateAction.java:40) at com.intellij.updater.UpdateZipAction.doApply(UpdateZipAction.java:199) на com.intellij.updater.PatchAction.apply(PatchAction.java:140) at com.intellij.updater.Patch $3.forEach(Patch.java:198) на com.intellij.updater.Patch.forEach(Patch.java:248) at com.intellij.updater.Patch.apply(Patch.java:194) на com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:86) at com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:77) на com.intellij.updater.Runner.doInstallImpl(Runner.java.307) at com.intellij.updater.Runner.doInstall(Runner.java:268) на com.intellij.updater.Runner.access $000 (Runner.java:18) at com.intellij.updater.Runner $2.execute(Runner.java:258) at com.intellij.updater.SwingUpdaterUI $7.run(SwingUpdaterUI.java:230) в java.lang.Thread.run(Thread.java:745)
Это происходит, если вы попытаетесь запустить обновление, пока процесс сборки Gradle все еще запущен (например, сразу после запуска Android Studio).
Ответы
Ответ 1
Обходной путь:
- Закройте Android Studio.
- Щелкните правой кнопкой мыши значок "Android Studio" и выберите "Запуск от имени администратора".
- Перейдите в "Справка- > Проверить обновление..." и пройдите обычный процесс обновления.
Я понял, что после нескольких неудачных попыток обновления с 0.5.1 по 0.5.2 я больше не получал приглашение безопасности Windows, чтобы запустить установщик JetBrains IntellJ, как я видел в предыдущих успешных обновлениях. Я не уверен, что изменилось с предыдущих обновлений, но, видимо, процесс обновления безуспешно пытался получить доступ к файлам без надлежащих разрешений. Поднятие Android Studio для администрирования с помощью вышеупомянутого процесса устранило проблему.
Как отмечено в вышеприведенном вопросе, эта проблема больше не возникает при обновлении с 0.5.2 по 0.5.3.
ИЗМЕНИТЬ
Чтобы исправить следующую ошибку, с которой я столкнулся с обновлением Android 0.6.0 до Android 0.6.1, я закрыл Studio, а затем перезапустил ее и давал ей сидеть на ночь (больше по совпадению, чем дизайн). Когда я вернулся к машине утром и запустил обновление, это сработало. Итак, кажется, что существует какой-то долговременный процесс, который блокирует обновление при определенных условиях (вероятно, сразу после запуска - возможно, процесс сборки Gradle?). @Daniel Wilson ответ ниже должен также работать для этого сценария.
Ответ 2
Это произошло со мной, начиная с 0.6.0 до 0.6.1. Я попытался открыть AS в режиме администратора, когда все остальные приложения закрыты, но обновление все еще не удалось для меня. Я также попытался удалить папку Temp.
В конце концов я заметил в диспетчере задач, когда все было закрыто. По какой-то причине у меня по-прежнему оставался значительный java.exe, который по-прежнему работает в фоновом режиме.
То, что я сделал, это открыть AS в режиме администратора, запустить обновление и дать ему потерпеть неудачу, заявив, что файл заблокирован/доступ запрещен или что-то подобное. Откройте диспетчер задач, и я заметил, что работает 2 java.exe. Для меня меньшая (около 200 тыс.) Была самой утилитой AS updater. Но если я убил более крупный (около 600 тыс.) И ударил повтор, обновление прошло без проблем.
Ответ 3
Не переустанавливайте в качестве администратора!
В то время как работа в режиме администратора может сделать обновление работоспособным, оно также может влиять на разрешения, установленные для любых файлов, которые были добавлены и/или обновлены, так что будущие операции в студии Android, использующие такие файлы, потребуют повышения (Admin ) доступ к работе должным образом.
Выполнение этого приведет к тому, что многие операции не будут работать, если Android Studio не будет запущен в режиме повышенной безопасности.
Вместо этого обработайте блокировку файла, затем повторите попытку:
Попробуйте убить все экземпляры java.exe (в диспетчере задач или в проводнике процессов), затем повторите попытку обновления, но не выполняйте роль администратора.
Каждый раз, когда я использовал Process Explorer (в Windows), чтобы проверить, какое приложение имеет блокировку на одном из файлов, которые блокировали Android Обновление Studio, это всегда была Java.
Что работало для меня (в Windows):
- Загрузите Process Explorer и убейте все экземпляры java.exe: в проводнике процессов, сортируйте по столбцу Process и найдите java.exe экземпляры, нажмите Del в выделенной строке. (С другой стороны, файл, блокирующий обновление, например
jsch.agentproxy.usocket-nc.jar
, можно проверить, нажав Ctl + F, а затем введите имя файла)
- Если процесс обновления не возобновляется автоматически, убейте его, перетащив значок цели
в окно процесса обновления - это обнаружит его в окне Process Explorer Process, а затем нажмите Del для удаления процесса.
- Запустите Android Studio (из меню "Пуск" ) и повторно запустите процесс обновления.
Ответ 4
Вы также можете попытаться предоставить пользователю разрешение на доступ к этой папке.
- Щелкните правой кнопкой мыши папку "android-studio" и выберите "Свойства"
- Перейдите на вкладку "Безопасность"
- Нажмите кнопку "Изменить"
- Выберите группу/пользователя из списка "Группы или имена пользователей"
- Вы можете выбрать/добавить свое имя пользователя в этот список -или -
- Выберите группу "Пользователи" (или группу, в которой находится ваш пользователь)
- Установите флажок "Полный контроль"
- Нажмите "Применить" и подождите
Вы закончили.
Ответ 5
Отключите антивирус и повторите попытку обновления... Работал для меня.
Ответ 6
Я застрял в одной и той же проблеме, но решил это, запустив эту script в повышенной консоли:
Программные файлы\Android\android-studio\bin\update_studio.bat
Ответ 7
Я решил аналогичную проблему при обновлении Android Studio, просто закрыв все остальные запущенные приложения, такие как Firefox, и перезапустил процесс обновления.
Кажется, что файл просто другой программой, и он не может быть доступен Android Studio.
Еще один способ решить эту проблему - удалить все файлы в соответствующей папке, например: User/AppData/Local/Temp
Ответ 8
У меня была та же проблема - обновление от 0.6.0 до 0.6.1
После нажатия кнопки "Обновить" студия Android перезапустилась и начала обновляться. После этого я получил сообщение об ошибке. Я нажал кнопку "Повторить" - это было неудачно. Затем я подождал около 2 минут (в моей студии после запуска Gradle работает) и снова нажал "Повторить" - Готово!:)
Все было обновлено. Так что в моем случае причиной проблемы был Gradle, который работает после запуска студии Android.
Ответ 9
У меня была эта же проблема с обновлением с 2.2 до 2.2.1.
Мое решение заключалось в том, чтобы выйти из машины, а затем снова войти: Перезагрузка Windows
Ответ 10
Я использовал LockHunter, чтобы узнать, что блокирует файлы. Результат: Adb заблокировал некоторые из них (я тестировал приложение Wi-Fi в мобильном телефоне). Я убил adb-сервер, перезапустил Android Studio, и я смог его обновить.
Удачи другим!