25

This morning, all Android Studio projects started failing Gradle sync/build/clean with:

> Could not create plugin of type 'AppPlugin'.

The stacktrace looks like:

* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':Project'.
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:54)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:177)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:38)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:25)
    at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55)
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:507)
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:82)
    at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:31)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:142)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:45)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:42)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:24)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.StartStopIfBuildAndStop.execute(StartStopIfBuildAndStop.java:33)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.ReturnResult.execute(ReturnResult.java:34)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:71)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:69)
    at org.gradle.util.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:69)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:60)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:45)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator.runCommand(DaemonStateCoordinator.java:186)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy.doBuild(StartBuildOrRespondWithBusy.java:49)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.HandleStop.execute(HandleStop.java:36)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.DaemonHygieneAction.execute(DaemonHygieneAction.java:39)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.CatchAndForwardDaemonFailure.execute(CatchAndForwardDaemonFailure.java:32)
    at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
    at org.gradle.launcher.daemon.server.exec.DefaultDaemonCommandExecuter.executeCommand(DefaultDaemonCommandExecuter.java:51)
    at org.gradle.launcher.daemon.server.DefaultIncomingConnectionHandler$ConnectionWorker.handleCommand(DefaultIncomingConnectionHandler.java:155)
    at org.gradle.launcher.daemon.server.DefaultIncomingConnectionHandler$ConnectionWorker.receiveAndHandleCommand(DefaultIncomingConnectionHandler.java:128)
    at org.gradle.launcher.daemon.server.DefaultIncomingConnectionHandler$ConnectionWorker.run(DefaultIncomingConnectionHandler.java:116)
    at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
Caused by: org.gradle.api.plugins.PluginInstantiationException: Could not create plugin of type 'AppPlugin'.
    at org.gradle.api.internal.plugins.DefaultPluginRegistry.loadPlugin(DefaultPluginRegistry.java:69)
    at org.gradle.api.internal.plugins.DefaultPluginContainer.providePlugin(DefaultPluginContainer.java:103)
    at org.gradle.api.internal.plugins.DefaultPluginContainer.addPluginInternal(DefaultPluginContainer.java:68)
    at org.gradle.api.internal.plugins.DefaultPluginContainer.apply(DefaultPluginContainer.java:34)
    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyPlugin(DefaultObjectConfigurationAction.java:101)
    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$200(DefaultObjectConfigurationAction.java:32)
    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$3.run(DefaultObjectConfigurationAction.java:72)
    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:114)
    at org.gradle.api.internal.project.AbstractPluginAware.apply(AbstractPluginAware.java:39)
    at org.gradle.api.Project$apply.call(Unknown Source)
    at org.gradle.api.internal.project.ProjectScript.apply(ProjectScript.groovy:34)
    at org.gradle.api.Script$apply.callCurrent(Unknown Source)
    at build_5mm5fv0emagtc49feqskf025g1.run(/projectdir/build.gradle:9)
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:52)
    ... 53 more
Caused by: java.lang.NoClassDefFoundError: com/android/builder/testing/api/DeviceProvider
    at com.android.build.gradle.AppPlugin.$getStaticMetaClass(AppPlugin.groovy)
    at com.android.build.gradle.BasePlugin.<init>(BasePlugin.groovy:1908)
    at com.android.build.gradle.AppPlugin.<init>(AppPlugin.groovy:37)
    at org.gradle.api.internal.DependencyInjectingInstantiator.newInstance(DependencyInjectingInstantiator.java:62)
    at org.gradle.api.internal.plugins.DefaultPluginRegistry.loadPlugin(DefaultPluginRegistry.java:67)
    ... 66 more
Caused by: java.lang.ClassNotFoundException: com.android.builder.testing.api.DeviceProvider
    ... 71 more

There's a bug report with a fair bit of activity, but no resolution yet.

This is Android Studio 0.5.2, gradle version 1.11/0.9.2.

Ideas?

N J
  • 27,217
  • 13
  • 76
  • 96
blahdiblah
  • 33,069
  • 21
  • 98
  • 152
  • 1
    I'm having the same error :/ I submitted my issue u.u – Rudy_TM Mar 26 '14 at 18:55
  • You really need to edit the title to specify 1.11 though, otherwise it makes you sound like an "enterprise" dude bitching about a pre-historic version not working. – TC1 Mar 27 '14 at 00:55

2 Answers2

50

Per the latest in the bug report, the issue was that version 0.9.2 was being served from Maven central even though all the necessary components weren't yet available (and gradle doesn't register that as a problem). This breaks things because pieces are missing. Version 0.9.2 is now completely available and works, but if you're seeing this bug your gradle cache is corrupted.

To fix:

gradle --refresh-dependencies

or delete

~/.gradle/caches

and then re-sync.


Prior fix, see above for update.

Based on comments in the bug report, it appears that version 0.9.2 is the source of this problem.

To fix, peg the gradle version to known-good version 0.9.1 instead of 0.9.+, 0.+, +, etc.

In your build.gradle file, change

classpath 'com.android.tools.build:gradle:0.9.+'

to

classpath 'com.android.tools.build:gradle:0.9.1'
blahdiblah
  • 33,069
  • 21
  • 98
  • 152
  • 4
    I would recommend 0.9.1; it has important bugfixes. 0.9.2 appears to be the bad release. – Scott Barta Mar 26 '14 at 19:02
  • Wow, it seems that everyone is getting this bug at the same time :) – nhaarman Mar 26 '14 at 19:11
  • Yup. Was doing a few pull requests and then all of a sudden Travis broke! – plackemacher Mar 26 '14 at 19:14
  • I'm new to android studio, in what file do I have to change this? – Christopher Francisco Mar 26 '14 at 19:27
  • 1
    @ChristopherFrancisco `build.gradle` – blahdiblah Mar 26 '14 at 19:27
  • Of course, this would happen for every Android dev on earth at the exact moment I'm trying to configure a new Build Server environment for the 1st time! I thought my Bamboo stuff was broken... Nope, just all of Android \*\*sigh\*\* – gMale Mar 26 '14 at 20:03
  • I'm on OS X and I'm assuming ./gradlew --cache rebuild is the equivalent command, but this still produces the same "Could not create plugin of type 'AppPlugin'" error. Also, I see no 'caches' folder in my .gradle folder. Should I just use the original fix and hardcode '0.9.1' to replace '0.9.+' in the gradle.build file? – Jason Hartley Mar 26 '14 at 20:32
  • 1
    After almost 2 hours struggling with this issue deleting the caches dir (~/.gradle/caches) and changing the classpath to 'com.android.tools.build:gradle:0.9.1' (instead of '0.9.+') did the trick for me. Thank you so much @blahdiblah – rgomesbr Mar 26 '14 at 21:00
  • 2
    @JasonHartley The cache is in your home directory .gradle folder, not the project .gradle folder. Is that the problem? – blahdiblah Mar 26 '14 at 21:06
  • 1
    `./gradlew --refresh-dependencies` did the trick! Thanks again, @blahdiblah. – Jason Hartley Mar 27 '14 at 03:42
  • @blahdiblah sorry i am new to android studio but where do i type this command gradle --refresh-dependencies – Sagar Devanga Jan 02 '15 at 08:30
1

In order to use the latest Gradle version 0.9.+, you have to update gradlewrapper.properties file too.

Open gradlewrapper.properties file which locate under youProjectPath/gradle/wrapper/gradlewrapper.properties path:

change distributionUrl url From

distributionUrl=http\://services.gradle.org/distributions/gradle-1.10-all.zip

To

distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip

After that, I changed build.gradle dependencies to

classpath 'com.android.tools.build:gradle:0.9.+'

and synced gradle files and everything when good.

Cheers

ahmed hamdy
  • 5,096
  • 1
  • 47
  • 58
Spiros
  • 49
  • 2