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

 

 

 

 

0
5 comments

Sources of

SomePluginNameIcons?
0

SomePluginNameIcons.kt in package "icons". 

 

package icons

import com.intellij.openapi.util.IconLoader.getIcon

object SomePluginNameIcons {
val TOOL_WINDOW = getIcon("/icons/toolWindowIcon.svg")
}

 

And "toolWindowIcon.svg" file in "src/resources/icons/toolWindowIcon.svg".

 

 

0

Found solution. For Kotlin it requires to add @JvmField annotation for the tool window icon:

 

package icons

import com.intellij.openapi.util.IconLoader.getIcon

object SomePluginNameIcons {
@JvmField
val TOOL_WINDOW = getIcon("/icons/toolWindowIcon.svg")
}
0

Please sign in to leave a comment.