我正在尝试在两台独立的 Windows 计算机上将 Android Studio 从 0.5.1 更新到 0.5.2,一台运行 Windows 7 Pro 64 位,另一台运行 Windows 7 Enterprise 64 位。
我收到正常的更新提示:
...如果我选择“更新并重新启动”,则会下载补丁并退出 IDE,但随后会出现以下对话框:
我无法更改任何“解决方案”列条目。如果我单击“继续”,我会收到如下所示的消息(图像和文本,因此其复制/粘贴/搜索友好):
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 特定于新版本的某种错误,所以我打开了问题 67794 https://code.google.com/p/android/issues/detail?id=67794在 AOSP 问题跟踪器上。
EDIT
我今天能够在两台机器上从 0.5.2 更新到 0.5.3,而没有遇到此问题。与之前的成功更新一样,我看到了 JetBrains 安装程序的 Windows 安全提示,并且更新成功完成,而无需使用提升的权限启动 Android Studio。所以,问题似乎是 0.5.1 或 0.5.2 补丁特有的问题。
EDIT
我在尝试从 Android Studio 0.6.0 更新到 0.6.1 时遇到了类似的错误:
温度。目录:C:\Users\barbeau\AppData\Local\Temp\
+----------------
文件操作失败。
这可能是由于文件被另一个文件锁定所致
应用。请尝试关闭任何应用程序
使用正在更新的文件,然后按“重试”。
+----------------
com.intellij.updater.RetryException:无法删除文件 C:\Program Files (x86)\Android\android-studio1\lib\openapi.jar
在 com.intellij.updater.BaseUpdateAction.replaceUpdated(BaseUpdateAction.java:40)
在 com.intellij.updater.UpdateZipAction.doApply(UpdateZipAction.java:199)
在 com.intellij.updater.PatchAction.apply(PatchAction.java:140)
在 com.intellij.updater.Patch$3.forEach(Patch.java:198)
在 com.intellij.updater.Patch.forEach(Patch.java:248)
在 com.intellij.updater.Patch.apply(Patch.java:194)
在 com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:86)
在 com.intellij.updater.PatchFileCreator.apply(PatchFileCreator.java:77)
在 com.intellij.updater.Runner.doInstallImpl(Runner.java:307)
在 com.intellij.updater.Runner.doInstall(Runner.java:268)
在 com.intellij.updater.Runner.access$000(Runner.java:18)
在 com.intellij.updater.Runner$2.execute(Runner.java:258)
在 com.intellij.updater.SwingUpdaterUI$7.run(SwingUpdaterUI.java:230)
在 java.lang.Thread.run(Thread.java:745)
如果您尝试在 Gradle 构建过程仍在运行时运行更新(例如,在启动 Android Studio 后),似乎会发生这种情况。