PyCharm 2026.1.2闪退排查与解决

PyCharm 2026.1.2 闪退问题排查与解决(Win10 + GTX 1660)

从 PyCharm 2020.1 升级到 2026.1 后打开即闪退,本文记录完整的排查过程、根因分析与多种解决方案。

一、问题背景

将本地开发环境从 PyCharm 2020.1 升级到 PyCharm 2026.1.2 后,双击启动图标后程序闪退,无任何错误提示弹窗。

既然卸载了旧版本还出现兼容性问题,说明问题大概率不在配置残留,而是新版渲染栈与当前软硬件环境的兼容问题。


二、环境信息

项目 信息
操作系统 Windows 10 64-bit (Build 18362 / Version 1909)
CPU Intel Core i5-9400F @ 2.90GHz(6 核,无核显)
内存 16 GB
显卡 NVIDIA GeForce GTX 1660
显卡驱动 31.0.15.2647(发布日期:2022/10/25)
数字签名方 Microsoft Windows Hardware Compatibility Publisher
原 PyCharm 2020.1(JBR 11 + 旧 Swing 渲染栈)
目标 PyCharm 2026.1.2(JBR 25 + Skia 渲染栈)

⚠️ 驱动隐患 :当前驱动是 Windows Update 推送的兼容版,不是 NVIDIA 官方 WHQL 驱动。从 2022 年 10 月至今近 4 年未更新,期间 NVIDIA 推送了几百个新版本。


三、故障现象

  • 双击 pycharm64.exe,出现启动闪屏后立即退出
  • 进程崩溃后未生成 IDE 自带的错误对话框
  • 在用户目录下生成 java_error_in_pycharm_<pid>.log 文件,包含完整 JVM 崩溃信息

四、日志分析

4.1 关键堆栈片段

text 复制代码
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007fff348728ff, pid=10516, tid=7092
#
# JRE version: OpenJDK Runtime Environment JBR-25.0.2+1-329.117-jcef (25.0.2+1)
# Java VM: OpenJDK 64-Bit Server VM JBR-25.0.2+1-329.117-jcef
# Problematic frame:
# C  [skiko-windows-x64.dll+0x7128ff]

4.2 JVM 启动参数(已部分禁用硬件加速)

text 复制代码
-Dsun.java2d.d3d=false
-Dsun.java2d.opengl=false
-Dsun.java2d.metal=false
-Dskiko.renderer=SOFTWARE

4.3 崩溃调用栈

text 复制代码
C  [skiko-windows-x64.dll+0x7128ff]
C  [skiko-windows-x64.dll+0x711b52]
C  [skiko-windows-x64.dll+0x7115ad]
C  [skiko-windows-x64.dll+0x4d1ca3]
...
j  org.jetbrains.skia.DirectContextKt._nFlushAndSubmit(JJZ)V
j  org.jetbrains.skia.DirectContext.flushAndSubmit(Lorg/jetbrains/skia/Surface;Z)V
j  org.jetbrains.skia.Surface.flushAndSubmit(Z)V
j  org.jetbrains.skiko.swing.Direct3DSwingRedrawer.flush(Lorg/jetbrains/skia/Surface;Ljava/awt/Graphics2D;)V
j  org.jetbrains.skiko.swing.Direct3DSwingRedrawer.onRender$lambda$1(...)
j  org.jetbrains.skiko.swing.SwingRedrawerBase.redraw(Ljava/awt/Graphics2D;)V
j  org.jetbrains.skiko.swing.SkiaSwingLayer.paint(Ljava/awt/Graphics;)V
j  androidx.compose.ui.scene.skia.SwingSkiaLayerComponent$contentComponent$1.paint(Ljava/awt/Graphics;)V
j  javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V
...

4.4 寄存器信息

text 复制代码
siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000000000000000
RCX=0x0 is null
RIP=0x00007fff348728ff

五、根因诊断

5.1 渲染栈代际差异

PyCharm 2026.1.2 基于 IntelliJ Platform 2025.x,渲染管线整体从 Swing + Java2D 迁移到 Skia + JetBrains Compose

版本 JDK / JBR 渲染栈 底层依赖
2020.1 JBR 11 Swing + Java2D GDI / Direct2D
2026.1 JBR 25 Skia + Compose Direct3D / Vulkan / Metal

即使 JVM 启动参数已显式设置 -Dskiko.renderer=SOFTWARE,从堆栈可见 Direct3DSwingRedrawer 仍被调用------这是 Skia SwingRedrawer 的"软件后端在 Windows 上仍走 Direct3D Surface"的设计。

5.2 关键崩溃点

  • 崩溃模块skiko-windows-x64.dll(JetBrains Skia 绑定)
  • 崩溃函数Direct3DSwingRedrawer.flushDirectContext.flushAndSubmit
  • 空指针访问reading address 0x0000000000000000(即 RCX 寄存器为 NULL)

这通常是 Skia 在调用底层图形接口时,Surface 句柄为空或被提前释放所导致。

5.3 失败组合

因素 状态
操作系统 Win10 1909(2020 年发布,2022 年 5 月 EOL,PyCharm 2026.1 未在该版本上做过完整测试)
显卡驱动 2022 年 10 月版本,4 年未更新,Microsoft 兼容签名
Skia 渲染栈 2026.1.2 强制使用 Skia,依赖较新的 DXGI / D3D11 特性
Direct3D 路径 在老驱动 + 老系统上行为不稳定,Surface 创建/提交失败

根因总结:PyCharm 2026.1 的 Skia 渲染栈 + 老旧 Win10 1903 + 4 年未更新的 Microsoft 兼容驱动,三者叠加导致 Direct3D Surface 提交时空指针访问,进程崩溃。


六、解决方案

方案一:JVM 参数禁用 Skia(推荐,无需升级任何系统组件)

编辑 PyCharm 安装目录下的 vmoptions 文件:

D:\Program Files\JetBrains\PyCharm 2026.1.2\bin\pycharm64.exe.vmoptions

在文件末尾追加:

text 复制代码
-Dskiko.useVulkan=false
-Dide.system.ide.skia.disable=true
-Dskiko.renderer=SOFTWARE_FALLBACK
-Dide.skija.render.on.graphics=true
-Dsun.java2d.d3d.offscreen=false
-Dawt.useSystemAAFontSettings=on

保存后重新启动 PyCharm。

✅ 实战验证:仅加前两行(-Dskiko.useVulkan=false-Dide.system.ide.skia.disable=true)即可让 PyCharm 2026.1 正常启动。

优势

  • 不需要升级系统、不需要动驱动
  • 5 分钟搞定,影响面最小
  • 回退方便,删掉这两行就恢复

代价

  • UI 渲染回退到 Swing 旧栈,部分动画/抗锯齿效果可能略差
  • 后续 PyCharm 小版本升级可能引入新的渲染参数(需关注)

方案二:DDU 干净安装 NVIDIA 官方驱动(治本)

适合希望根治的用户。详细步骤:

1. 准备
  1. 下载 DDU(绿色免安装):https://www.wagnardsoft.com/display-driver-uninstaller-DDU-
  2. 下载 NVIDIA Studio 驱动https://www.nvidia.com/Download/index.aspx
    • Product Type: GeForce
    • Product Series: GeForce GTX 16 Series (Notebooks)
    • Product: GeForce GTX 1660
    • OS: Windows 10 64-bit
    • Download Type: Studio Driver (SD)
  3. 把驱动安装包存到 D:\NVIDIA_Driver不要放桌面或 C 盘根目录
2. 断网

任务栏断 WiFi / 拔网线 / 开飞行模式,防止 Windows Update 自动装回老驱动。

3. 进入安全模式

Win + I → 更新和安全 → 恢复 → 高级启动 → 立即重启 → 疑难解答 → 高级选项 → 启动设置 → 重启 → 按 F4

4. 运行 DDU
  1. 双击 Display Driver Uninstaller.exe
  2. 设备类型选 GPU ,品牌选 NVIDIA
  3. "清除并重启"
  4. 系统自动重启
5. 安装新驱动
  1. 重启后系统会变成 800×600 低分辨率(正常,无驱动状态)
  2. 跳过任何"正在搜索驱动程序"提示
  3. 右键以管理员身份运行驱动安装包
  4. 选择 自定义(高级) 安装
  5. 勾选"执行清洁安装"(Perform a clean installation)
  6. 等待安装完成自动重启
6. 验证
  • 设备管理器 → 显示适配器 → 看到 NVIDIA GeForce GTX 1660,无黄色感叹号
  • 驱动数字签名应为 NVIDIA Corporation(不再是 Microsoft)
  • 重新连接网络

方案三:回退到 PyCharm 2024.3 LTS

如果方案一仍有问题,且不愿意升级驱动,PyCharm 2024.3 LTS 是最后一个对 Win10 老环境友好的大版本,使用 JBR 21 + 更稳定的渲染栈。


七、验证结果

方案一仅加两行 JVM 参数后:

text 复制代码
-Dskiko.useVulkan=false
-Dide.system.ide.skia.disable=true

PyCharm 2026.1.2 启动正常,主窗口、编辑器、终端、插件均正常工作。


八、经验总结

8.1 排查思路

#mermaid-svg-ormh1ak9flEE5AXI{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-ormh1ak9flEE5AXI .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-ormh1ak9flEE5AXI .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-ormh1ak9flEE5AXI .error-icon{fill:#552222;}#mermaid-svg-ormh1ak9flEE5AXI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ormh1ak9flEE5AXI .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-ormh1ak9flEE5AXI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ormh1ak9flEE5AXI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ormh1ak9flEE5AXI .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-ormh1ak9flEE5AXI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ormh1ak9flEE5AXI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ormh1ak9flEE5AXI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ormh1ak9flEE5AXI .marker.cross{stroke:#333333;}#mermaid-svg-ormh1ak9flEE5AXI svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ormh1ak9flEE5AXI p{margin:0;}#mermaid-svg-ormh1ak9flEE5AXI .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-ormh1ak9flEE5AXI .cluster-label text{fill:#333;}#mermaid-svg-ormh1ak9flEE5AXI .cluster-label span{color:#333;}#mermaid-svg-ormh1ak9flEE5AXI .cluster-label span p{background-color:transparent;}#mermaid-svg-ormh1ak9flEE5AXI .label text,#mermaid-svg-ormh1ak9flEE5AXI span{fill:#333;color:#333;}#mermaid-svg-ormh1ak9flEE5AXI .node rect,#mermaid-svg-ormh1ak9flEE5AXI .node circle,#mermaid-svg-ormh1ak9flEE5AXI .node ellipse,#mermaid-svg-ormh1ak9flEE5AXI .node polygon,#mermaid-svg-ormh1ak9flEE5AXI .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ormh1ak9flEE5AXI .rough-node .label text,#mermaid-svg-ormh1ak9flEE5AXI .node .label text,#mermaid-svg-ormh1ak9flEE5AXI .image-shape .label,#mermaid-svg-ormh1ak9flEE5AXI .icon-shape .label{text-anchor:middle;}#mermaid-svg-ormh1ak9flEE5AXI .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-ormh1ak9flEE5AXI .rough-node .label,#mermaid-svg-ormh1ak9flEE5AXI .node .label,#mermaid-svg-ormh1ak9flEE5AXI .image-shape .label,#mermaid-svg-ormh1ak9flEE5AXI .icon-shape .label{text-align:center;}#mermaid-svg-ormh1ak9flEE5AXI .node.clickable{cursor:pointer;}#mermaid-svg-ormh1ak9flEE5AXI .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-ormh1ak9flEE5AXI .arrowheadPath{fill:#333333;}#mermaid-svg-ormh1ak9flEE5AXI .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ormh1ak9flEE5AXI .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ormh1ak9flEE5AXI .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ormh1ak9flEE5AXI .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-ormh1ak9flEE5AXI .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ormh1ak9flEE5AXI .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-ormh1ak9flEE5AXI .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ormh1ak9flEE5AXI .cluster text{fill:#333;}#mermaid-svg-ormh1ak9flEE5AXI .cluster span{color:#333;}#mermaid-svg-ormh1ak9flEE5AXI div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ormh1ak9flEE5AXI .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-ormh1ak9flEE5AXI rect.text{fill:none;stroke-width:0;}#mermaid-svg-ormh1ak9flEE5AXI .icon-shape,#mermaid-svg-ormh1ak9flEE5AXI .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ormh1ak9flEE5AXI .icon-shape p,#mermaid-svg-ormh1ak9flEE5AXI .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-ormh1ak9flEE5AXI .icon-shape .label rect,#mermaid-svg-ormh1ak9flEE5AXI .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ormh1ak9flEE5AXI .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-ormh1ak9flEE5AXI .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-ormh1ak9flEE5AXI :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是



skiko
jcef
jvm


PyCharm 启动闪退
有日志?
查看崩溃模块和帧
用命令行启动,生成日志
崩溃在 JVM 内部?
检查 JVM 参数/堆内存/类路径
崩溃在 native 库
哪个 dll?
Skia 渲染问题
Chromium 嵌入问题
JDK 自身问题
尝试禁用 Skia 或升级驱动
解决?
DDU 重装显卡驱动
解决?
回退 PyCharm 大版本

8.2 关键经验

  1. 日志中的 Problematic frame 行最关键------直接告诉你崩在哪个原生模块
  2. 看版本号差异------2020 → 2026 跨了 6 个大版本,渲染栈完全换了一套
  3. 不要忽视显卡驱动的"小问题"------Microsoft 兼容签名 + 4 年未更新,迟早会出事
  4. JVM 参数优先级高于 IDE 内部开关------vmoptions 文件是排查渲染问题的第一站
  5. DDU 是 Windows 上处理显卡驱动的终极工具------任何驱动问题先想到它

8.3 防御性建议

  • 不要让显卡驱动欠账超过 6 个月------即便没有具体问题,也建议每半年升级一次
  • JBR 大版本升级时(如 11→17→21→25),先在测试机器验证关键 IDE
  • 建立配置快照------重要 IDE 的 vmoptions 文件建议纳入 dotfiles 仓库管理
  • 保留上一版本安装包------升级前先做新版本验证,不行了能快速回退

九、附录

9.1 完整崩溃堆栈(节选)

text 复制代码
Command Line: abort vfprintf -XX:ErrorFile=...\java_error_in_pycharm_%p.log
              -Xms256m -Xmx2048m -XX:ReservedCodeCacheSize=512m
              -Dsun.java2d.d3d=false -Dsun.java2d.opengl=false
              -Dsun.java2d.metal=false -Dskiko.renderer=SOFTWARE
              -Djb.vmOptionsFile=D:\Program Files\JetBrains\PyCharm 2026.1.2\bin\pycharm64.exe.vmoptions
              com.intellij.idea.Main

Current thread: JavaThread "AWT-EventQueue-0"
Native frames:
  C  [skiko-windows-x64.dll+0x7128ff]
  C  [skiko-windows-x64.dll+0x711b52]
  C  [skiko-windows-x64.dll+0x7115ad]
  C  [skiko-windows-x64.dll+0x4d1ca3]
  C  [skiko-windows-x64.dll+0x4d9d42]
  C  [skiko-windows-x64.dll+0x6bd981]
  C  [skiko-windows-x64.dll+0x6edef2]
  C  [skiko-windows-x64.dll+0x487d6f]
  C  [skiko-windows-x64.dll+0x23ccc7]
  C  [skiko-windows-x64.dll+0x23c5e3]
  C  [skiko-windows-x64.dll+0x23d232]
  C  [skiko-windows-x64.dll+0x18325f]
  C  [skiko-windows-x64.dll+0x9d986]

Java frames:
  j  org.jetbrains.skia.DirectContextKt._nFlushAndSubmit(JJZ)V
  j  org.jetbrains.skia.DirectContext.flushAndSubmit(Lorg/jetbrains/skia/Surface;Z)V
  j  org.jetbrains.skia.Surface.flushAndSubmit(Z)V
  j  org.jetbrains.skiko.swing.Direct3DSwingRedrawer.flush(...)
  j  org.jetbrains.skiko.swing.SwingRedrawerBase.redraw(Ljava/awt/Graphics2D;)V
  j  org.jetbrains.skiko.swing.SkiaSwingLayer.paint(Ljava/awt/Graphics;)V
  j  androidx.compose.ui.scene.skia.SwingSkiaLayerComponent$contentComponent$1.paint(...)
  j  javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V
  ...

9.2 相关工具链接

9.3 文档元信息

  • 故障日期:2026-06-21
  • 解决耗时:约 30 分钟
  • 最终方案:JVM 参数禁用 Skia
  • 涉及产品:PyCharm 2026.1.2 / JBR 25.0.2 / Skia 1.x