Home Features Docs Blog Support GitHub

Unofficial AS/IntelliJ plugin release 1.4.4-C


#1

This is an unofficial modification build of Android Studio / Intellij IDEA MOE plugin which contains the following modifications:

  1. MOE build task is now cancellable.
  2. Create binding option is available on Windows.
  3. Support Intellij IDEA 2018.3+.
  4. Add indent to natj binding file (.nbc file) to make it more human readable and VCS-friendly.

Download: https://github.com/multi-os-engine-community/moe-ide-integration/releases/tag/moe-idea-1.4.4-C

Install:
File -> Settings -> Plugins -> Install Plugin from Disk -> Select the zip file.
image


Android 3.4 Multi-OS Engine menu greyed out
Multi-OS Engine Actions context menu is always greyed out
Module disappeared, I can't run the project can't create new run config due to null exception in MOE
(Gergely Kis - Migeran) #2

Hi @Noisyfox,

this is great stuff!

Would you be interested in sending a pull / merge request for your changes? We just need a CLA from you, PM me for the details.

Best Regards,
Gergely


#3

Thanks @Noisyfox. You saved the day again, by fixing this problem for me: Multi-OS Engine Actions context menu is always greyed out


(Brian Chan) #4

I installed the 1.4.4-c plug-in on IDEA 2018.3. Got the follow error when trying to add a MOE configuration:

java.lang.NoClassDefFoundError: org/moe/common/utils/OsUtils
at org.moe.idea.runconfig.configuration.MOERunConfigurationEditor.resetEditorFrom(MOERunConfigurationEditor.java:126)
at org.moe.idea.runconfig.configuration.MOERunConfigurationEditor.resetEditorFrom(MOERunConfigurationEditor.java:70)
at com.intellij.openapi.options.SettingsEditor.lambda$resetFrom$0(SettingsEditor.java:73)
at com.intellij.openapi.options.SettingsEditor.bulkUpdate(SettingsEditor.java:80)
at com.intellij.openapi.options.SettingsEditor.resetFrom(SettingsEditor.java:73)
at com.intellij.execution.impl.ConfigurationSettingsEditor$ConfigToSettingsWrapper.resetEditorFrom(ConfigurationSettingsEditor.java:292)
at com.intellij.execution.impl.ConfigurationSettingsEditor$ConfigToSettingsWrapper.resetEditorFrom(ConfigurationSettingsEditor.java:276)
at com.intellij.openapi.options.CompositeSettingsEditor.resetEditorFrom(CompositeSettingsEditor.java:52)
at com.intellij.execution.impl.ConfigurationSettingsEditorWrapper.resetEditorFrom(ConfigurationSettingsEditorWrapper.java:98)
at com.intellij.execution.impl.ConfigurationSettingsEditorWrapper.resetEditorFrom(ConfigurationSettingsEditorWrapper.java:25)
at com.intellij.openapi.options.SettingsEditor.lambda$resetFrom$0(SettingsEditor.java:73)
at com.intellij.openapi.options.SettingsEditor.bulkUpdate(SettingsEditor.java:80)
at com.intellij.openapi.options.SettingsEditor.resetFrom(SettingsEditor.java:73)
at com.intellij.openapi.options.SettingsEditorConfigurable.reset(SettingsEditorConfigurable.java:41)
at com.intellij.execution.impl.SingleConfigurationConfigurable.reset(SingleConfigurationConfigurable.java:131)
at com.intellij.execution.impl.SingleConfigurationConfigurable.editSettings(SingleConfigurationConfigurable.java:94)
at com.intellij.execution.impl.RunConfigurable.createNewConfiguration(RunConfigurable.kt:935)
at com.intellij.execution.impl.RunConfigurable.createNewConfiguration(RunConfigurable.kt:971)
at com.intellij.execution.impl.RunConfigurable$MyToolbarAddAction$showAddPopup$popup$1.consume(RunConfigurable.kt:1011)
at com.intellij.execution.impl.RunConfigurable$MyToolbarAddAction$showAddPopup$popup$1.consume(RunConfigurable.kt:984)
at com.intellij.execution.impl.NewRunConfigurationPopup$1.onChosen(NewRunConfigurationPopup.java:61)
at com.intellij.execution.impl.NewRunConfigurationPopup$1.onChosen(NewRunConfigurationPopup.java:32)
at com.intellij.ui.popup.list.ListPopupImpl._handleSelect(ListPopupImpl.java:391)
at com.intellij.ui.popup.list.ListPopupImpl.handleSelect(ListPopupImpl.java:343)
at com.intellij.ui.popup.list.ListPopupImpl$MyMouseListener.mouseReleased(ListPopupImpl.java:503)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
at java.awt.Component.processMouseEvent(Component.java:6548)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
at com.intellij.ui.popup.list.ListPopupImpl$MyList.processMouseEvent(ListPopupImpl.java:557)
at java.awt.Component.processEvent(Component.java:6313)
at java.awt.Container.processEvent(Container.java:2237)
at java.awt.Component.dispatchEventImpl(Component.java:4903)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Component.dispatchEvent(Component.java:4725)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
at java.awt.Container.dispatchEventImpl(Container.java:2281)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4725)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:737)
at java.awt.EventQueue$4.run(EventQueue.java:735)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:719)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:664)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:363)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
at java.awt.Dialog.show(Dialog.java:1077)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:698)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:430)
at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1681)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1630)
at com.intellij.execution.actions.EditRunConfigurationsAction.actionPerformed(EditRunConfigurationsAction.java:48)
at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:258)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:275)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:287)
at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:283)
at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:106)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:277)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:111)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:111)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:120)
at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:122)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:111)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:308)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at com.apple.laf.ScreenMenuItemCheckbox.itemStateChanged(ScreenMenuItemCheckbox.java:193)
at java.awt.CheckboxMenuItem.processItemEvent(CheckboxMenuItem.java:389)
at java.awt.CheckboxMenuItem.processEvent(CheckboxMenuItem.java:357)
at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:355)
at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:343)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:767)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:737)
at java.awt.EventQueue$4.run(EventQueue.java:735)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:719)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:668)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:363)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


(Brian Chan) #5

In fact I’m getting this error when I restart the IDE since I installed the new plug-in. Something wrong with my installation? I just followed the instruction and select install from disk.


(Brian Chan) #6

Alright, I think I know what went wrong and got it fixed. When I downloaded the zip file it automatically unzipped so I only selected 1 of the jar files when I installed the plug-in.

So the error is gone and I’m able to select ios-moe module in the run configuration window. However. I’m getting a weird error when trying to run the ios-moe configuration.

Failed to apply plugin [id ‘android’]
Could not create an instance of type com.android.build.gradle.internal.dsl.BaseAppModuleExtension_Decorated.


(Ioannis Giannakakis) #7

Is there anybody who could prepare the plugin for android studio 3.4 and accordingly for gradle 5.x? I tried to check it out, but i don’t know how to compile it !
Imho, there ´re some minor changes to be done compiling the plugin with the gradle 5.x libraries, found a “solution” on the libgdx forum, but wasn’t able to compile the moe module.
Regards !


#8

It does work with Android Studio 3.4 (but with gradle 4.x).
As for supporting gradle 5.x, I’ll have a look ASAP.


(Raphael) #9

Hi Noisyfox,
any updates on supporting gradle 5.x? Would be really great. Because of some dropped support for gradle 4.x I need to get my app building with gradle 5.x


(Raphael) #10

I wanted to try to update the plugin myself but failed in even building it. How to build the repository correctly? I tried to do it like it is written here but couldn’t succeed. Is there any current way to build it as the description seems to be a little bit outdated.