intellij-idea - IntelliJ 不断索引,当 src 文件处于焦点时
问题描述
我有一个奇怪的intellij行为。只要我关注像 *.java 这样的 src 文件,它就会不断地尝试重新索引我的项目。任何项目都会发生这种情况。即使我有一个带有单个 src 文件的新项目。
我已将其重置为制造商状态,但它仍在尝试重新索引。
我在 Ubuntu 18.04
日志输出:2020-08-18 05:02:02,004 [260523] INFO - indexing.UnindexedFilesUpdater - 未索引文件更新开始:0 个文件到索引 2020-08-18 05:02:02,602 [261121] INFO - pl.ProjectRootManagerComponent -项目根已更改(已使用 trace_hash = 676357740 报告了堆栈跟踪)2020-08-18 05:02:02,609 [261128] INFO - .diagnostic.PerformanceWatcher - 推送属性花费了 3 毫秒;一般反应:好的;EDT 响应能力:好的
我在日志中发现了这个异常,这似乎是根本原因
2020-08-18 05:11:52,721 [126435] 信息 - pl.ProjectRootManagerComponent - 项目根已更改 (trace_hash = 30135350) java.lang.Throwable 在 com.intellij.openapi.roots.impl.ProjectRootManagerComponent.synchronizeRoots(ProjectRootManagerComponent. java:306) at com.intellij.openapi.roots.impl.ProjectRootManagerComponent.fireRootsChangedEvent(ProjectRootManagerComponent.java:210) at com.intellij.openapi.roots.impl.ProjectRootManagerImpl.fireRootsChanged(ProjectRootManagerImpl.java:428) at com.intellij .openapi.roots.impl.ProjectRootManagerImpl.access$200(ProjectRootManagerImpl.java:37) 在 com.intellij.openapi.roots.impl.ProjectRootManagerImpl$BatchSession.rootsChanged(ProjectRootManagerImpl.java:96) 在 com.intellij.openapi.roots。 impl.ProjectRootManagerImpl.makeRootsChange(ProjectRootManagerImpl.java:371) 在 com.intellij.openapi.roots.impl。ProjectRootManagerImpl$RootProviderChangeListener.rootSetChanged(ProjectRootManagerImpl.java:668) at jdk.internal.reflect.GeneratedMethodAccessor532.invoke(Unknown Source) 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.util.EventDispatcher.dispatchVoidMethod(EventDispatcher.java:123) at com.intellij.util.EventDispatcher.lambda$createMulticaster$1(EventDispatcher .java:86) 在 com.sun.proxy.$Proxy174.rootSetChanged(Unknown Source) 在 com.intellij.openapi.roots.impl.RootProviderBaseImpl.fireRootSetChanged(RootProviderBaseImpl.java:47) 在 com.intellij.openapi.application。 impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:980) 在 com.intellij.openapi.projectRoots.impl.ProjectJdkImpl$MyRootProvider。com.intellij.openapi.projectRoots.impl.ProjectJdkImpl.copyTo(ProjectJdkImpl.java:267) 上的rootChanged(ProjectJdkImpl.java:291) com.intellij.openapi.projectRoots.impl.ProjectJdkImpl.commitChanges(ProjectJdkImpl.java:309)在 com.intellij.codeInspection.magicConstant.MagicConstantInspection.lambda$attachAnnotationsLaterTo$1(MagicConstantInspection.java:182) 在 com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:201) 在 com.intellij.openapi.application .impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802) 在 com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:322) 在 com.intellij.openapi.application.impl.FlushQueue。 doRun(FlushQueue.java:84) 在 com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:132) 在 com.intellij。openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:47) 在 com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:188) 在 java.desktop/java.awt.event。 InvocationEvent.dispatch(InvocationEvent.java:313) 在 java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776) 在 java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) 在java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) 在 java.base/java.security.AccessController.doPrivileged(Native Method) 在 java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege( ProtectionDomain.java:85) 在 java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746) 在 com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:967) 在 com.intellij.ide.IdeEventQueue ._dispatchEvent(IdeEventQueue.java:839) 在 com。intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:450) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:744) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent $9(IdeEventQueue.java:449) 在 com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802) 在 com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:497) 在 java.desktop /java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) 在 java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) 在 java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java :113) 在 java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) 在 java.desktop/java.awt。java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) 上的 EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
解决方案
已知问题:IDEA-247322。解决方法是禁用 Preferences | 编辑 | 检查 | 爪哇 | 可能的错误 | 魔法常数检查。
UPD:已通过 2020.2.3 IDE 更新修复。
推荐阅读
- android-fragments - 无法从 LiveData 获取数据
- angular - 将其他用户列添加到周视图日历
- java - 有没有办法删除链接列表节点,以使这段代码中的头部成为唯一剩下的东西?
- javascript - 将 jQuery ajax 转换为 fetch
- typescript - 高级 TS 类型:镜像键但成为新值的包装器类型
- flutter - 收听 FutureProvider 的变化
- php - PHP“填充”函数参数
- javascript - 如何在电子中有多个页面?
- android - CameraX ,捕获图像表面视图并发送 firebase
- windows - 在知道父进程句柄的情况下,如何获取子进程句柄?