java.lang.Throwable: Icon cannot be found in SomePluginNameIcons
Answered
Hello,
I want to replace
<toolWindow id="SomePluginName"
anchor="bottom"
icon="/icons/toolWindowIcon.svg"
factoryClass="io.ui.toolwindow.SomePluginNameToolWindowFactory"/>
to
<toolWindow id="SomePluginName"
anchor="bottom"
icon="SomePluginNameIcons.TOOL_WINDOW"
factoryClass="io.ui.toolwindow.SomePluginNameToolWindowFactory"/>
But I'm getting
java.lang.Throwable: Icon cannot be found in 'SomePluginNameIcons.TOOL_WINDOW', aClass='class com.intellij.openapi.wm.impl.ToolWindowManagerImplKt'
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:143)
at com.intellij.openapi.util.IconLoader.getIcon(IconLoader.java:207)
at com.intellij.openapi.util.IconLoader.getIcon(IconLoader.java:168)
at com.intellij.openapi.wm.impl.ToolWindowManagerImplKt.findIconFromBean(ToolWindowManagerImpl.kt:2058)
at com.intellij.openapi.wm.impl.ToolWindowManagerImplKt.access$findIconFromBean(ToolWindowManagerImpl.kt:1)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.beanToTask(ToolWindowManagerImpl.kt:453)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.access$beanToTask(ToolWindowManagerImpl.kt:92)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl$beforeProjectOpened$$inlined$runActivity$lambda$1.accept(ToolWindowManagerImpl.kt:2102)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl$beforeProjectOpened$$inlined$runActivity$lambda$1.accept(ToolWindowManagerImpl.kt)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processWithPluginDescriptor(ExtensionPointImpl.java:298)
at com.intellij.openapi.extensions.ExtensionPointName.processWithPluginDescriptor(ExtensionPointName.java:158)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.beforeProjectOpened(ToolWindowManagerImpl.kt:2094)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.access$beforeProjectOpened(ToolWindowManagerImpl.kt:92)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl$InitToolWindowsActivity.runActivity(ToolWindowManagerImpl.kt:1916)
at com.intellij.ide.startup.impl.StartupManagerImpl.runActivity(StartupManagerImpl.java:293)
at com.intellij.ide.startup.impl.StartupManagerImpl.lambda$executeActivitiesFromExtensionPoint$2(StartupManagerImpl.java:197)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processImplementations(ExtensionPointImpl.java:313)
at com.intellij.ide.startup.impl.StartupManagerImpl.executeActivitiesFromExtensionPoint(StartupManagerImpl.java:178)
at com.intellij.ide.startup.impl.StartupManagerImpl.runStartUpActivities(StartupManagerImpl.java:170)
at com.intellij.ide.startup.impl.StartupManagerImpl.projectOpened(StartupManagerImpl.java:138)
at com.intellij.openapi.project.impl.ProjectManagerExImplKt.openProject(ProjectManagerExImpl.kt:333)
at com.intellij.openapi.project.impl.ProjectManagerExImplKt.access$openProject(ProjectManagerExImpl.kt:1)
at com.intellij.openapi.project.impl.ProjectManagerExImpl.doOpenProject$intellij_platform_ide_impl(ProjectManagerExImpl.kt:147)
at com.intellij.openapi.project.impl.ProjectManagerExImpl$openProject$$inlined$runInAutoSaveDisabledMode$lambda$1.invoke(ProjectManagerExImpl.kt:110)
at com.intellij.openapi.project.impl.ProjectManagerExImpl$openProject$$inlined$runInAutoSaveDisabledMode$lambda$1.invoke(ProjectManagerExImpl.kt:47)
at com.intellij.openapi.project.impl.ProjectUiFrameAllocator$run$1$progressTask$1.run(ProjectFrameAllocator.kt:84)
at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:935)
at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:490)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$new$0(ProgressRunner.java:79)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:235)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:170)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:157)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:235)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
at java.base/java.lang.Thread.run(Thread.java:834)
Can someone suggest how to fix this?
Best regards,
Alex
Please sign in to leave a comment.
Sources of
SomePluginNameIcons?SomePluginNameIcons.kt in package "icons".
And "toolWindowIcon.svg" file in "src/resources/icons/toolWindowIcon.svg".
Found solution. For Kotlin it requires to add @JvmField annotation for the tool window icon:
Thanks for your feedback, we've clarified the documentation https://jetbrains.org/intellij/sdk/docs/reference_guide/work_with_icons_and_images.html
Great! 👍