Using ProjectBuilder in Junit 4 Test Throws java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.deleteQuietly(Ljava/io/File;)Z

I am working on a Gradle Plugin that is built against the Android Gradle Plugin. I am trying to write unit tests for hit. Whenever I use ProjectBuilder to mock a project instance I get the following crash.

java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.deleteQuietly(Ljava/io/File;)Z
 at org.gradle.internal.nativeintegration.filesystem.services.GenericFileSystem.<init>(GenericFileSystem.java:89)
 at org.gradle.internal.nativeintegration.filesystem.services.FileSystemServices.createFileSystem(FileSystemServices.java:53)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
 at org.gradle.internal.service.DefaultServiceRegistry.invoke(DefaultServiceRegistry.java:328)
 at org.gradle.internal.service.DefaultServiceRegistry.access$1200(DefaultServiceRegistry.java:58)
 at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:641)
 at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:597)
 at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectProvider.getInstance(DefaultServiceRegistry.java:439)
 at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:479)
 at org.gradle.internal.service.DefaultServiceRegistry.doGet(DefaultServiceRegistry.java:300)
 at org.gradle.internal.service.DefaultServiceRegistry.get(DefaultServiceRegistry.java:288)
 at org.gradle.internal.service.DefaultServiceRegistry$ParentServices.getService(DefaultServiceRegistry.java:851)
 at org.gradle.internal.service.DefaultServiceRegistry$CompositeProvider.getService(DefaultServiceRegistry.java:796)
 at org.gradle.internal.service.DefaultServiceRegistry$CompositeProvider.getService(DefaultServiceRegistry.java:796)
 at org.gradle.internal.service.DefaultServiceRegistry$DefaultLookupContext.find(DefaultServiceRegistry.java:986)
 at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.bind(DefaultServiceRegistry.java:571)
 at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.prepare(DefaultServiceRegistry.java:484)
 at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.getService(DefaultServiceRegistry.java:497)
 at org.gradle.internal.service.DefaultServiceRegistry$OwnServices.getService(DefaultServiceRegistry.java:388)
 at org.gradle.internal.service.DefaultServiceRegistry$CompositeProvider.getService(DefaultServiceRegistry.java:796)
 at org.gradle.internal.service.DefaultServiceRegistry$DefaultLookupContext.find(DefaultServiceRegistry.java:986)
 at org.gradle.internal.service.DefaultServiceRegistry.doGet(DefaultServiceRegistry.java:298)
 at org.gradle.internal.service.DefaultServiceRegistry.get(DefaultServiceRegistry.java:288)
 at org.gradle.internal.service.DefaultServiceRegistry$ParentServices.getService(DefaultServiceRegistry.java:851)
 at org.gradle.internal.service.DefaultServiceRegistry$CompositeProvider.getService(DefaultServiceRegistry.java:796)
 at org.gradle.internal.service.DefaultServiceRegistry$CompositeProvider.getService(DefaultServiceRegistry.java:796)
 at org.gradle.internal.service.DefaultServiceRegistry$DefaultLookupContext.find(DefaultServiceRegistry.java:986)
 at org.gradle.internal.service.DefaultServiceRegistry.doGet(DefaultServiceRegistry.java:298)
 at org.gradle.internal.service.DefaultServiceRegistry.get(DefaultServiceRegistry.java:288)
 at org.gradle.internal.service.DefaultServiceRegistry$ParentServices.getService(DefaultServiceRegistry.java:851)
 at org.gradle.internal.service.DefaultServiceRegistry$CompositeProvider.getService(DefaultServiceRegistry.java:796)
 at org.gradle.internal.service.DefaultServiceRegistry$CompositeProvider.getService(DefaultServiceRegistry.java:796)
 at org.gradle.internal.service.DefaultServiceRegistry$DefaultLookupContext.find(DefaultServiceRegistry.java:986)
 at org.gradle.internal.service.DefaultServiceRegistry.doGet(DefaultServiceRegistry.java:298)
 at org.gradle.internal.service.DefaultServiceRegistry.get(DefaultServiceRegistry.java:284)
 at org.gradle.invocation.DefaultGradle.<init>(DefaultGradle.java:78)
 at org.gradle.testfixtures.internal.ProjectBuilderImpl.createProject(ProjectBuilderImpl.java:79)
 at org.gradle.testfixtures.ProjectBuilder.build(ProjectBuilder.java:99)
 at org.gradle.testfixtures.ProjectBuilder$build$0.call(Unknown Source)
 at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
 at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
 at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
 at com.colatris.plugin.CsPluginTest.setup(CsPluginTest.groovy:19)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
 at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
 at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
 at org.junit.runners.Suite.runChild(Suite.java:127)
 at org.junit.runners.Suite.runChild(Suite.java:26)
 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
 at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
 at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
 at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
 at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211)
 at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

My tests look something like this.

package com.colatris.plugin;
  import org.gradle.api.Project;
import org.gradle.testfixtures.ProjectBuilder;
import org.junit.Test
  import static junit.framework.TestCase.assertTrue;
    /**
 * Created by jophde on 12/29/14.
 */
public class SendApkTaskTest {
      @Test
    public void canAddTaskToProject() {
        Project project = ProjectBuilder.builder().build()
        def task = project.task('sendApk', type: SendApkTask)
        assertTrue(task instanceof SendApkTask)
    }
}

My dependencies are:

dependencies {
    compile gradleApi()
    compile localGroovy()
    testCompile 'xmlunit:xmlunit:1.5'
    compile 'com.android.tools.build:gradle:1.0.0'
    deployJars 'org.apache.maven.wagon:wagon-ssh:2.2'
}

Everything works fine from the command line. The probably occurs when trying to run a junit test in the newest 1.0 Android Studio.

I think that Studio is implicitly putting an incompatible version of commons-io on the classpath. That, are it’s just using a different classpath order.

Try excluding commons-io from xmlUnit. 

Please refer this url for this doubt.

http://www.javaprogrammingforums.com/exceptions/21410-exception-java-lang-nosuchmethoderror-org-apache-commons-io-fileutils-movefile-ljava-io-file%3Bljava-io-file%3B.html

pls refer this url http://www.javaprogrammingforums.com/exceptions/21410-exception-java-lang-nosuchmethoderror-org-apache-commons-io-fileutils-movefile-ljava-io-file%3Bljava-io-file%3B.html