AndroidTemplatePluginSample
AndroidTemplatePluginSample copied to clipboard
SamplePluginTemplateProviderImpl does not implement class WizardTemplateProvider
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
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.
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?
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.
My android studio running on 4.1 stable.
My android studio running on 4.1 stable.
But i'm unable to see the activity in the template list.
Why