找不到参数方法testImplementation()[junit:junit:4.12]

时间:2018-10-01 11:27:36

标签: android gradle junit build

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha06'
    implementation 'android.arch.navigation:navigation-ui:1.0.0-alpha06'
    implementation 'android.arch.navigation:navigation-fragment-ktx:1.0.0-alpha06'
    implementation 'android.arch.navigation:navigation-ui-ktx:1.0.0-alpha06'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

这是我的build.gradle文件,我尝试了许多方法,但无法解决,当我启动Android Studio并gradle开始构建项目时,Android Studio抛出此错误 我该如何解决?(我是Android新手)

在类型testImplementation()的对象上找不到参数[junit:junit:4.12]的方法org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

11 个答案:

答案 0 :(得分:15)

这是Google的错。您需要使用国家/地区字母,因此请使用“İ”代替“ I”。

testİmplementation  'junit:junit:4.12'
androidTestİmplementation  'androidx.test:runner:1.1.1'
androidTestİmplementation  'androidx.test.espresso:espresso-core:3.1.1'

答案 1 :(得分:6)

嗯,我知道这不是最好的解决方案,但这是有效的。我只是将这些行注释掉了:

//testImplementation "junit:junit:4.12"
//testImplementation "org.robolectric:robolectric:3.1.2"

希望对您有帮助=)

答案 2 :(得分:1)

即使the documentation

  

在应用的顶级build.gradle文件中,将以下库指定为依赖项:

...我还没有找到一个可以那样工作的示例。

实际上,this GoogleSamples Android Unit Test example指定:

  

//注意:请勿在此处放置应用程序依赖项;它们属于单独的模块build.gradle文件

因此,将该行移至模块 build.gradle,而不是顶级 build.gradle

答案 3 :(得分:0)

您可以提供Gradle版本并完成build.gradle吗?

可能的问题:

  1. 您缺少插件定义 apply plugin: 'com.android.application'

或任何隐式使用Java Plugin的插件?这就是testImplementation的来源。

  1. 您正在使用

确保您使用的是Gradle 3.x +,并且顶层build.gradle中定义了Android Gradle插件3.x +: https://developer.android.com/studio/releases/gradle-plugin#updating-plugin

答案 4 :(得分:0)

仅同步有效变体             您可以从以下位置禁用此实验功能             文件→设置→实验→Gradle→仅同步活动版本

答案 5 :(得分:0)

build.gradle文件替换:

dependencies {
    classpath 'com.android.tools.build:gradle:3.0.1'
}

答案 6 :(得分:0)

确保您注意正确的骆驼套。 TestImplementation不是testimplementation。除非您遵守该约定,否则您会收到错误消息,并且会让您抓狂

答案 7 :(得分:0)

之前

我不知道implementation必须位于dependencies的{​​{1}}之内

build.gradle
// build.gradle
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

implementation 'org.springframework.boot:spring-boot-starter-actuator'

之后

gs-spring-boot/initial [master●] » ./gradlew bootRun

FAILURE: Build failed with an exception.

* Where:
Build file '/home/geoff/work/androidStuff/gs-spring-boot/initial/build.gradle' line: 27

* What went wrong:
A problem occurred evaluating root project 'spring-boot'.
> Could not find method implementation() for arguments [org.springframework.boot:spring-boot-starter-actuator] on root project 'spring-boot' of type org.gradle.api.Project.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
// build.gradle
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
}

答案 8 :(得分:0)

100%工作。

用testImplementation代替testİmplementation。(用I或i代替)

在您的依赖项中

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha06'
implementation 'android.arch.navigation:navigation-ui:1.0.0-alpha06'
implementation 'android.arch.navigation:navigation-fragment-ktx:1.0.0-alpha06'
implementation 'android.arch.navigation:navigation-ui-ktx:1.0.0-alpha06'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testimplementation 'junit:junit:4.12'
androidTestimplementation 'com.android.support.test:runner:1.0.2'
androidTestimplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

}

答案 9 :(得分:-1)

添加配置->模板->渐变->定义gradle项目字段gradle项目。

enter image description here

答案 10 :(得分:-1)

这3种方法中的一种都可以使用

1) 项目结构>项目>并更改

版本版本:4.6
Android插件版本:3.2.1

2) 更改它testImplementation->testİmplementation

 testİmplementation 'junit:junit:4.12'
    androidTestİmplementation 'com.android.support.test:runner:1.0.2'
    androidTestİmplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

3)

    //testImplementation 'junit:junit:4.12'

    //androidTestImplementation 'androidx.test:runner:1.1.2-alpha02'

    //androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0-alpha02'
    
  

清洁->重建

  

文件->使用Gradle文件同步项目