IDEA 2021.1.2 的启动卡在LOGO界面的琢磨

今天在IDEA 中启用了一个插件,等待重启之后卡在启动界面。

就像这样(长得花里胡哨的):
image.png

机智的我打开任务管理器查看,IDEA的进程内存占用900M左右,CPU占用率为0,磁盘读写速度0。按照国际惯例,只有启动成功了啥事没干才会这样,可是界面明显是卡死了,故,找日志吧。

IDEA 的默认日志路径在 “C:\Users<用户名>\AppData\Local\JetBrains\IntelliJIdea<版本>\log”

拖到最下面发现如下内容

2021-07-02 22:25:32,111 [  33975]  ERROR -   #com.intellij.util.SVGLoader - Recursive update 
java.lang.IllegalStateException: Recursive update
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1760)
	at org.jetbrains.mvstore.MVStore.getChunk(MVStore.java:1376)
	at org.jetbrains.mvstore.MVStore.readPage(MVStore.java:2607)
	at org.jetbrains.mvstore.NonLeafPage.getChildPage(NonLeafPage.java:62)
	at org.jetbrains.mvstore.Page.get(Page.java:205)
	at org.jetbrains.mvstore.MVMap.get(MVMap.java:372)
	at org.jetbrains.mvstore.MVStore.lambda$getChunk$4(MVStore.java:1378)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
	at org.jetbrains.mvstore.MVStore.getChunk(MVStore.java:1376)
	at org.jetbrains.mvstore.MVStore.readPage(MVStore.java:2607)
	at org.jetbrains.mvstore.NonLeafPage.getChildPage(NonLeafPage.java:62)
	at org.jetbrains.mvstore.Page.get(Page.java:205)
	at org.jetbrains.mvstore.MVMap.get(MVMap.java:372)
	at org.jetbrains.mvstore.MVStore.lambda$getChunk$4(MVStore.java:1378)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
	at org.jetbrains.mvstore.MVStore.getChunk(MVStore.java:1376)
	at org.jetbrains.mvstore.MVStore.readPage(MVStore.java:2607)
	at org.jetbrains.mvstore.NonLeafPage.getChildPage(NonLeafPage.java:62)
	at org.jetbrains.mvstore.NonLeafPage.getPrependCursorPos(NonLeafPage.java:194)
	at org.jetbrains.mvstore.Cursor.traverseDown(Cursor.java:163)
	at org.jetbrains.mvstore.Cursor.<init>(Cursor.java:40)
	at org.jetbrains.mvstore.MVMap.cursor(MVMap.java:617)
	at org.jetbrains.mvstore.MVMap.cursor(MVMap.java:604)
	at org.jetbrains.mvstore.MVMap.cursor(MVMap.java:592)
	at org.jetbrains.mvstore.MVStore.readStoreHeader(MVStore.java:922)
	at org.jetbrains.mvstore.MVStore.<init>(MVStore.java:450)
	at org.jetbrains.mvstore.MVStore$Builder.openOrNewOnIoError(MVStore.java:3996)
	at com.intellij.ui.svg.SvgCacheManager.<init>(SvgCacheManager.java:59)
	at com.intellij.util.SVGLoader$SvgCache.<clinit>(SVGLoader.java:84)
	at com.intellij.util.SVGLoader.load(SVGLoader.java:217)
	at com.intellij.util.ImageLoader.loadByDescriptorWithoutCache(ImageLoader.java:261)
	at com.intellij.util.ImageLoader.loadByDescriptor(ImageLoader.java:227)
	at com.intellij.util.ImageLoader.loadImage(ImageLoader.java:152)
	at com.intellij.openapi.util.IconLoader$ResolvedImageDataResolver.loadImage(IconLoader.java:1057)
	at com.intellij.openapi.util.IconLoader$CachedImageIcon.loadImage(IconLoader.java:936)
	at com.intellij.openapi.util.IconLoader$ScaledIconCache.getOrScaleIcon(IconLoader.java:1005)
	at com.intellij.openapi.util.IconLoader$CachedImageIcon.getRealIcon(IconLoader.java:824)
	at com.intellij.openapi.util.IconLoader$CachedImageIcon.getIconWidth(IconLoader.java:752)
	at com.intellij.ui.AppUIUtil.scaleIconToSize(AppUIUtil.java:185)
	at com.intellij.ui.AppUIUtil.loadApplicationIcon(AppUIUtil.java:181)
	at com.intellij.ui.AppUIUtil.loadApplicationIcon(AppUIUtil.java:152)
	at com.intellij.ide.b.j.U.a(U.java:307)
	at com.intellij.ide.b.j.U.a(U.java:240)
	at com.intellij.ide.b.j.F.a(F.java:95)
	at com.intellij.ide.b.j.F.<init>(F.java:50)
	at com.intellij.ide.b.j.s.<init>(s.java:251)
	at com.intellij.ide.b.j.L.a(L.java:52)
	at com.intellij.ide.b.j.L.a(L.java:45)
	at com.intellij.ide.b.c.aI.a(aI.java:322)
	at com.intellij.ide.b.j.g.a(g.java:215)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:303)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:419)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
2021-07-02 22:25:32,119 [  33983]  ERROR -   #com.intellij.util.SVGLoader - IntelliJ IDEA 2021.1.2  Build #IU-211.7442.40 
2021-07-02 22:25:32,126 [  33990]  ERROR -   #com.intellij.util.SVGLoader - JDK: 11.0.11; VM: Dynamic Code Evolution 64-Bit Server VM; Vendor: JetBrains s.r.o. 
2021-07-02 22:25:32,126 [  33990]  ERROR -   #com.intellij.util.SVGLoader - OS: Windows 10 
2021-07-02 22:25:32,128 [  33992]   WARN -        #com.intellij.idea.Main -  
java.lang.reflect.InvocationTargetException
	at java.desktop/java.awt.EventQueue.invokeAndWait(EventQueue.java:1373)
	at java.desktop/java.awt.EventQueue.invokeAndWait(EventQueue.java:1348)
	at com.intellij.idea.StartupUtil.runInEdtAndWait(StartupUtil.java:845)
	at com.intellij.idea.StartupUtil$1.invokeAndWait(StartupUtil.java:305)
	at com.intellij.util.ui.EdtInvocationManager.invokeAndWaitIfNeeded(EdtInvocationManager.java:152)
	at com.intellij.ide.b.j.g.a(g.java:209)
	at com.intellij.ide.b.c.aI.a(aI.java:317)
	at com.intellij.ide.b.c.aq.c(aq.java:182)
	at com.intellij.ide.b.c.aq.a(aq.java:81)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.intellij.idea.MainImpl.start(MainImpl.java:96)
	at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:310)
	at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:250)
	at com.intellij.ide.plugins.MainRunner.lambda$start$1(MainRunner.java:41)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.NullPointerException
	at com.intellij.util.SVGLoader.load(SVGLoader.java:217)
	at com.intellij.util.ImageLoader.loadByDescriptorWithoutCache(ImageLoader.java:261)
	at com.intellij.util.ImageLoader.loadByDescriptor(ImageLoader.java:227)
	at com.intellij.util.ImageLoader.loadImage(ImageLoader.java:152)
	at com.intellij.openapi.util.IconLoader$ResolvedImageDataResolver.loadImage(IconLoader.java:1057)
	at com.intellij.openapi.util.IconLoader$CachedImageIcon.loadImage(IconLoader.java:936)
	at com.intellij.openapi.util.IconLoader$ScaledIconCache.getOrScaleIcon(IconLoader.java:1005)
	at com.intellij.openapi.util.IconLoader$CachedImageIcon.getRealIcon(IconLoader.java:824)
	at com.intellij.openapi.util.IconLoader$CachedImageIcon.getIconWidth(IconLoader.java:752)
	at com.intellij.ui.AppUIUtil.scaleIconToSize(AppUIUtil.java:185)
	at com.intellij.ui.AppUIUtil.loadApplicationIcon(AppUIUtil.java:181)
	at com.intellij.ui.AppUIUtil.loadApplicationIcon(AppUIUtil.java:152)
	at com.intellij.ide.b.j.U.a(U.java:307)
	at com.intellij.ide.b.j.U.a(U.java:240)
	at com.intellij.ide.b.j.F.a(F.java:95)
	at com.intellij.ide.b.j.F.<init>(F.java:50)
	at com.intellij.ide.b.j.s.<init>(s.java:251)
	at com.intellij.ide.b.j.L.a(L.java:52)
	at com.intellij.ide.b.j.L.a(L.java:45)
	at com.intellij.ide.b.c.aI.a(aI.java:322)
	at com.intellij.ide.b.j.g.a(g.java:215)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:303)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:419)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
复制代码

看起来像是跟SVG有关?
闲来无事搜一搜,哎,还真有。

image.png
这老哥的错误看起来我跟这个类似,那就尝试抄一下作业。

image.png

emmmm,要我删掉这个 cache 目录,他这是个 mac的路径吧,对应到Windows就是”C:\Users<用户名>\AppData\Local\JetBrains\IntelliJIdea<版本>”。

先给“IntelliJIdea2021.1”目录改成“IntelliJIdea2021.1_b”,然后重启,嘿,它就好了。

观察目录变化,IDEA 在“JetBrains”目录下创建了一个“IntelliJIdea2021.1目录”,里面有个0KB的“icons-v2.db”文件,而旧的“IntelliJIdea2021.1_b”文件却是 38388KB,难道是这玩意损坏了?

抱着尝试的心态,把新的“IntelliJIdea2021.1”删掉,“IntelliJIdea2021.1_b”改成“IntelliJIdea2021.1”,删掉“icons-v2.db”,然后启动 IDEA。

果然,又可以愉快的玩耍了。

那么“icons-v2.db”究竟是怎么损坏的呢?我想可能是由于太阳高能粒子轰击我的 CPU 导致某一位突变而写坏了文件罢。

参考链接:

IDEA路径配置

类似错误的解决方案

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享