You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Android Studio 2022.1.1 Patch1安装失败问题咨询

Android Studio 2022.1.1升级Patch 1失败的根源分析

问题场景

在Windows 11家庭版环境下,尝试将Android Studio 2022.1.1升级至2022.1.1 Patch 1时失败,该升级操作可在Linux分区正常完成。补丁下载完成后重启IDE触发更新,报错信息如下:

An error occurred when preparing the patch:
java.io.IOException: An absolute link: C:\Program Files\Android\Android Studio\jre -> C:\Program Files\Android\Android Studio\jbr

对应的更新日志完整内容:

20/02 14:57:18 INFO  Runner.initLogger - --- Updater started ---
20/02 14:57:18 INFO  Runner._main - args: [install, C:\Program Files\Android\Android Studio]
20/02 14:57:18 INFO  Runner._main - destination: C:\Program Files\Android\Android Studio (C:\Program Files\Android\Android Studio), case-sensitive: false
20/02 14:57:18 INFO  Utils.getTempFile - created a working directory: C:\Users\vanet\AppData\Local\Google\AndroidStudio2022.1\tmp\patch-update\idea.updater.files.2070024887130819060
20/02 14:57:18 INFO  Runner.install - Extracting patch file...
20/02 14:57:18 INFO  Utils.getZipEntry - entryPath: patch-file.zip
20/02 14:57:18 INFO  Utils.getZipEntry - entryPath: .patch-info
20/02 14:57:18 INFO  PatchFileCreator.prepareAndValidate - Android Studio 221.6008.13.2211.9477386 -> 221.6008.13.2211.9514443
20/02 14:57:18 INFO  Patch.forEach - Validating installation... [3175 actions]
20/02 14:57:18 ERROR Runner.install - prepare failed
java.io.IOException: An absolute link: C:\Program Files\Android\Android Studio\jre -> C:\Program Files\Android\Android Studio\jbr
    at com.intellij.updater.Digester.digestRegularFile(Digester.java:50)
    at com.intellij.updater.Patch.digestFile(Patch.java:450)
    at com.intellij.updater.DeleteAction.validate(DeleteAction.java:42)
    at com.intellij.updater.Patch.lambda$validate$0(Patch.java:292)
    at com.intellij.updater.Patch.forEach(Patch.java:438)
    at com.intellij.updater.Patch.validate(Patch.java:291)
    at com.intellij.updater.PatchFileCreator.prepareAndValidate(PatchFileCreator.java:109)
    at com.intellij.updater.Runner.install(Runner.java:413)
    at com.intellij.updater.Runner._main(Runner.java:221)
    at com.intellij.updater.Runner.main(Runner.java:49)

20/02 14:57:34 INFO  Runner.cleanup - Cleaning up...
20/02 14:57:34 INFO  Utils.tryDelete - deleted: C:\Users\vanet\AppData\Local\Google\AndroidStudio2022.1\tmp\patch-update\idea.updater.files.2070024887130819060\patch.tmp.0
20/02 14:57:34 INFO  Utils.tryDelete - deleted: C:\Users\vanet\AppData\Local\Google\AndroidStudio2022.1\tmp\patch-update\idea.updater.files.2070024887130819060
20/02 14:57:34 INFO  Utils.cleanup - deleted a working directory: C:\Users\vanet\AppData\Local\Google\AndroidStudio2022.1\tmp\patch-update\idea.updater.files.2070024887130819060
20/02 14:58:53 INFO  Runner.initLogger - --- Updater started ---
20/02 14:58:53 INFO  Runner._main - args: [install, C:\Program Files\Android\Android Studio]
20/02 14:58:53 INFO  Runner._main - destination: C:\Program Files\Android\Android Studio (C:\Program Files\Android\Android Studio), case-sensitive: false
20/02 14:58:53 INFO  Utils.getTempFile - created a working directory: C:\Users\vanet\AppData\Local\Google\AndroidStudio2022.1\tmp\patch-update\idea.updater.files.11969764392612736673
20/02 14:58:53 INFO  Runner.install - Extracting patch file...
20/02 14:58:53 INFO  Utils.getZipEntry - entryPath: patch-file.zip
20/02 14:58:53 INFO  Utils.getZipEntry - entryPath: .patch-info
20/02 14:58:53 INFO  PatchFileCreator.prepareAndValidate - Android Studio 221.6008.13.2211.9477386 -> 221.6008.13.2211.9514443
20/02 14:58:53 INFO  Patch.forEach - Validating installation... [3175 actions]
20/02 14:58:53 ERROR Runner.install - prepare failed
java.io.IOException: An absolute link: C:\Program Files\Android\Android Studio\jre -> C:\Program Files\Android\Android Studio\jbr
    at com.intellij.updater.Digester.digestRegularFile(Digester.java:50)
    at com.intellij.updater.Patch.digestFile(Patch.java:450)
    at com.intellij.updater.DeleteAction.validate(DeleteAction.java:42)
    at com.intellij.updater.Patch.lambda$validate$0(Patch.java:292)
    at com.intellij.updater.Patch.forEach(Patch.java:438)
    at com.intellij.updater.Patch.validate(Patch.java:291)
    at com.intellij.updater.PatchFileCreator.prepareAndValidate(PatchFileCreator.java:109)
    at com.intellij.updater.Runner.install(Runner.java:413)
    at com.intellij.updater.Runner._main(Runner.java:221)
    at com.intellij.updater.Runner.main(Runner.java:49)

注:jre为指向JetBrains Runtime目录jbr的符号链接。

问题根源分析

1. JetBrains更新器的符号链接校验逻辑限制

JetBrains为IntelliJ平台(包括Android Studio)开发的更新工具,在Windows系统下的文件校验逻辑中,明确禁止处理绝对路径格式的符号链接。从报错栈可以看到,Digester.digestRegularFile方法在检测到jre是绝对路径符号链接时直接抛出异常,终止更新流程。而Linux系统对绝对路径符号链接的兼容性更好,更新器的校验逻辑未对此做限制,因此Linux下升级正常。

2. 跨平台符号链接格式差异

Android Studio在Windows和Linux平台上创建jre符号链接的格式不同:Windows版本使用的是绝对路径指向jbr,而Linux版本使用的是相对路径。制作升级补丁时,是基于Linux下相对路径符号链接的预期进行适配的,未考虑Windows下绝对路径符号链接的场景,导致补丁校验不通过。

3. Windows NTFS符号链接与Linux软链接的底层差异

Windows NTFS符号链接和Linux软链接的底层实现、权限校验机制不同。JetBrains更新器的文件处理逻辑未完全适配Windows符号链接的特性,当更新器尝试读取jre符号链接的目标路径时,将绝对路径判定为不符合安全规范的异常情况,触发了预设的校验拦截规则。

内容的提问来源于stack exchange,提问作者Mauro Vanetti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 12:46:15