我为android studio创建了插件,但我得到

时间:2017-07-10 12:19:24

标签: android-studio intellij-idea plugins

插件在toolsmenu或菜单中的任何位置只包含一个动作,但我总是得到 空值 显示java.lang.NullPointerException  即便是空洞的行动  android studio 2.3.3空项目 intellij idea 2017.1.5我尝试了两个版本社区和终极

  

null java.lang.NullPointerException at   com.intellij.ide.SystemHealthMonitor.getActionName(SystemHealthMonitor.java:542)     在   com.intellij.ide.SystemHealthMonitor.countActionInvocation(SystemHealthMonitor.java:479)     在   com.intellij.openapi.actionSystem.impl.ActionManagerImpl.fireBeforeActionPerformed(ActionManagerImpl.java:1190)     在   com.intellij.openapi.actionSystem.impl.ActionMenuItem $ ActionTransmitter.lambda $ $的actionPerformed 2(ActionMenuItem.java:292)     在   com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:905)     在   com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:124)     在   com.intellij.openapi.actionSystem.impl.ActionMenuItem $ ActionTransmitter.actionPerformed(ActionMenuItem.java:284)     在   javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)     在   com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda $ fireActionPerformed $ 0(ActionMenuItem.java:112)     在   com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)     在   com.intellij.openapi.application.TransactionGuardImpl.access $ 300(TransactionGuardImpl.java:40)     在   com.intellij.openapi.application.TransactionGuardImpl $ 2.run(TransactionGuardImpl.java:113)     在   com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:123)     在   com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:109)     在   com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:112)     在   com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:513)     在   com.intellij.ui.plaf.beg.BegMenuItemUI.access $ 300(BegMenuItemUI.java:45)     在   com.intellij.ui.plaf.beg.BegMenuItemUI $ MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:533)     在java.awt.Component.processMouseEvent(Component.java:6533)at   javax.swing.JComponent.processMouseEvent(JComponent.java:3324)at   java.awt.Component.processEvent(Component.java:6298)at   java.awt.Container.processEvent(Container.java:2236)at   java.awt.Component.dispatchEventImpl(Component.java:4889)at   java.awt.Container.dispatchEventImpl(Container.java:2294)at   java.awt.Component.dispatchEvent(Component.java:4711)at   java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)     在   java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)     在java.awt.Container.dispatchEventImpl(Container.java:2280)at   java.awt.Window.dispatchEventImpl(Window.java:2746)at   java.awt.Component.dispatchEvent(Component.java:4711)at   java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)at at   java.awt.EventQueue.access $ 500(EventQueue.java:97)at   java.awt.EventQueue $ 3.run(EventQueue.java:709)at   java.awt.EventQueue $ 3.run(EventQueue.java:703)at   java.security.AccessController.doPrivileged(Native Method)at   java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)     在   java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)     在java.awt.EventQueue $ 4.run(EventQueue.java:731)at   java.awt.EventQueue $ 4.run(EventQueue.java:729)at   java.security.AccessController.doPrivileged(Native Method)at   java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)     在java.awt.EventQueue.dispatchEvent(EventQueue.java:728)at   com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:795)     在   com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:627)     在   com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:387)     在   java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)     在   java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)     在   java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)     在   java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)     在   java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)     在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

3 个答案:

答案 0 :(得分:1)

我在这里找到了同样的问题:intellij idea create plugin can not use on android studio

用户Meo指出您要使用包

答案 1 :(得分:0)

我将动作类移至程序包中,并且有效

不起作用:

<action id="myid" class="MyAction" text="My text"/>

工作:

<action id="myid" class="action.MyAction" text="My text"/>

答案 2 :(得分:0)

谢谢大家,这真是个愚蠢的问题... 只需要创建包-动作 并将类放到那个包中...

此外,Kotlin DSL还存在一个问题,使用了Groovy并成功了!

为我工作!