AndroidTemplatePluginSample icon indicating copy to clipboard operation
AndroidTemplatePluginSample copied to clipboard

SamplePluginTemplateProviderImpl does not implement class WizardTemplateProvider

Open mlegy opened this issue 4 years ago • 6 comments

Hello,

I followed these steps to try to run this plugin:

  • I cloned the repo.
  • Executed ./gradlew buildPlugin.
  • Installed the plugin into Android Studio v4.1 from PROJECT_DIR/build/distributions/Android template implementation example-1.0-SNAPSHOT.zip
  • Restarted Android Studio
  • Opened new project screen.
  • The below exception is thrown.
com.intellij.openapi.extensions.ExtensionException: Extension class activities.SamplePluginTemplateProviderImpl does not implement class com.android.tools.idea.wizard.template.WizardTemplateProvider (adapter=ExtensionComponentAdapter(impl=activities.SamplePluginTemplateProviderImpl, plugin=PluginDescriptor(name=Android template implementation sample, id=com.android.tools.idea.wizard.template.sample.impl2, path=/Users/ahmadelmelegy/Library/Application Support/Google/AndroidStudioPreview4.1/plugins/Android template implementation example)))
	at com.intellij.openapi.extensions.impl.ExtensionPointImpl.checkExtensionType(ExtensionPointImpl.java:220)
	at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapter(ExtensionPointImpl.java:462)
	at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapters(ExtensionPointImpl.java:401)
	at com.intellij.openapi.extensions.impl.ExtensionPointImpl.getExtensions(ExtensionPointImpl.java:249)
	at com.intellij.openapi.extensions.ExtensionPointName.getExtensions(ExtensionPointName.java:37)
	at com.android.tools.idea.npw.template.TemplateResolver$Companion.getAllTemplates(TemplateResolver.kt:31)
	at com.android.tools.idea.npw.template.ChooseActivityTypeStep$templateRenderers$1.invokeSuspend(ChooseActivityTypeStep.kt:47)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:140)
	at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:722)
	at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:752)
	at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:743)
	at com.android.tools.idea.npw.template.ChooseActivityTypeStep.<init>(ChooseActivityTypeStep.kt:51)
	at com.android.tools.idea.npw.template.ChooseActivityTypeStep.<init>(ChooseActivityTypeStep.kt:34)
	at com.android.tools.idea.npw.template.ChooseActivityTypeStep$Factory.forNewModule(ChooseActivityTypeStep.kt:58)
	at com.android.tools.idea.npw.module.ConfigureAndroidModuleStep.createDependentSteps(ConfigureAndroidModuleStep.kt:98)
	at com.android.tools.idea.wizard.model.ModelWizard.addStep(ModelWizard.java:225)
	at com.android.tools.idea.wizard.model.ModelWizard.addStep(ModelWizard.java:227)
	at com.android.tools.idea.wizard.model.ModelWizard.<init>(ModelWizard.java:93)
	at com.android.tools.idea.wizard.model.ModelWizard.<init>(ModelWizard.java:47)
	at com.android.tools.idea.wizard.model.ModelWizard$Builder.build(ModelWizard.java:560)
	at com.android.tools.idea.actions.AndroidNewModuleAction.actionPerformed(AndroidNewModuleAction.kt:54)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:280)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:296)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:281)
	at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:77)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:285)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:112)
	at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:112)
	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:357)
	at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:345)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:769)
	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:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:739)
	at java.awt.EventQueue$4.run(EventQueue.java:737)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:974)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:847)
	at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:741)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	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)

Android Studio Version:

Android Studio 4.1 Beta 5
Build #AI-201.8538.31.41.6692364, built on July 19, 2020
Runtime version: 1.8.0_242-release-1644-b3-6222593 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.5
GC: ParNew, ConcurrentMarkSweep
Memory: 1237M
Cores: 12
Registry: ide.new.welcome.screen.force=true
Non-Bundled Plugins: com.android.tools.idea.wizard.template.sample.impl2

What do you think is wrong here?

Thanks

mlegy avatar Aug 03 '20 17:08 mlegy

Sorry for the long delay. I think it's because the version of the plugin (under the lib folder) and the version of the Android Studio you are trying to run don't match.

There should be any mechanism to detect the versions. Let me think about that.

thagikura avatar Sep 02 '20 07:09 thagikura

Thanks for your reply.

What is the source of this plugin (under the lib folder)? Where can I get the version that's compatible with the latest version of Android Studio?

mlegy avatar Sep 15 '20 12:09 mlegy

It's under the Android Studio's installation directory.

<studio directory>/plugins/android/lib/wizard-template.jar

I think that works with that version of Android Studio.

thagikura avatar Sep 17 '20 02:09 thagikura

My android studio running on 4.1 stable.

kirtanparmar avatar Oct 13 '20 18:10 kirtanparmar

My android studio running on 4.1 stable.

But i'm unable to see the activity in the template list.

kirtanparmar avatar Oct 13 '20 18:10 kirtanparmar

Why

aikongmeng avatar Nov 19 '20 09:11 aikongmeng