Java 使用Gradle版本2.2.3的android studio项目中未识别testCompile方法?

Java 使用Gradle版本2.2.3的android studio项目中未识别testCompile方法?,java,android,android-studio,gradle,Java,Android,Android Studio,Gradle,我想不出这个问题。我正试图按照android开发者页面的建议,开始使用junit为我的项目编写单元测试。在我的应用程序的顶级构建文件中,我有一个gradle文件,如下所示: //顶级生成文件,您可以在其中添加所有子项目/模块通用的配置选项 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.

我想不出这个问题。我正试图按照android开发者页面的建议,开始使用junit为我的项目编写单元测试。在我的应用程序的顶级构建文件中,我有一个gradle文件,如下所示:

//顶级生成文件,您可以在其中添加所有子项目/模块通用的配置选项

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        testCompile 'junit:junit:4.12'
        testCompile "org.mockito:mockito-core:1.9.5"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}
当我尝试执行Gradle项目同步时,出现以下错误:

Error:(9, 0) Could not find method testCompile() for arguments [junit:junit:4.12] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler

您正在放置
buildscript
的依赖项。通常,您应该在那里放置构建生命周期或插件开发所需的依赖项

实际上,您可以通过将
dependencies
块移动到
allprojects
闭包来解决此问题,例如:

// ...
allprojects {
    repositories {
        jcenter()
    }
    dependencies {
        testCompile 'junit:junit:4.12'
        testCompile "org.mockito:mockito-core:1.9.5"
    }
}

但请遵循评论中的建议。甚至在根
build.gradle
文件中放置公共依赖项也不是最好的办法。

//注意:不要将应用程序依赖项放在这里;它们属于//单个模块build.gradle文件
-按照建议,将它们放在你的app build.gradle依赖项中(我知道开发者页面上说了什么,但它应该在app级别工作,而不是顶级gradle文件)好吧,很高兴知道,因为你怀疑我在遵循dev页面上说的话。@MarkKeen确实,开发者页面仍然说要把它放在顶级gradle文件中,这会导致gradle项目同步错误,浪费开发者的时间。到底为什么开发者页面会提出这样的建议?