找不到Gradle DSL方法:“ androidTestImplementation”

问题描述

我正在尝试使用uiautomator,所以在这里https://developer.android.com/training/testing/ui-testing/uiautomator-testing#java

看了本教程

在教程中,内容为:

在Android应用模块的build.gradle文件中,您必须设置对UI Automator库的依赖项引用:

dependencies {
    ...
    androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
}

所以我添加了这一行,所以我的build.gradle文件是这样的:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    ext.kotlin_version = "1.3.72"
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.0.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

//        androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
//        androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
        androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
//        androidTestImplementation('androidx.test.uiautomator:uiautomator:2.2.0')

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

然后我尝试运行该应用程序。但是我遇到了一个错误

Gradle DSL method not found: 'androidTestImplementation()'
Possible causes:
The project 'My Application' may be using a version of the Android Gradle plug-in that does not contain the method (e.g. 'testCompile' was added in 1.1.0).
Upgrade plugin to version 4.0.2 and sync project

The project 'My Application' may be using a version of Gradle that does not contain the method.
Open Gradle wrapper file

The build file may be missing a Gradle plugin.
Apply Gradle plugin

解决方法

您使用的是错误 build.gradle文件和错误的块。

您必须将androidTestImplementation从顶层文件移动到module/build.gradle块中的dependencies文件(而不是dependencies中的buildscript块):

   apply plugin: 'com.android.application'
   apply plugin: 'kotlin-android'

   android {
    //...
   }

    dependencies {
        //...
        androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
    }
,

将您的依赖项实现移至应用程序级别的 build.gradle 文件。您已将它们放在项目级别的 build.gradle 文件中。