Gradle "Build Script error" возникает, когда я пытаюсь использовать testCompile в зависимостях

Я работаю с Android Studio и в своих зависимостях для своего приложения пытаюсь добавить зависимость testCompile, как указано здесь: http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html Когда я синхронизирую свой файл, я получить сообщение об ошибке: sync error screenshot Я не понимаю, что происходит, мой файл сборки Gradle в моей корневой папке установлен на classpath 'com.android.tools.build:gradle:0.12.+' и это самая последняя версия, Почему он не распознает testCompile? Я не хочу развертывать тестовые зависимости на производстве... Любая помощь будет оценена.

РЕДАКТИРОВАТЬ: Вот файл сборки проекта

buildscript {
    repositories {
        jcenter()


    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        jcenter()
    }
}

и вот файл сборки src:

apply plugin: 'com.android.application'
android {
    compileSdkVersion 17
    buildToolsVersion "20.0.0"
    defaultConfig {
        applicationId "com.example.edu.myApp"
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug{
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile files('libs/scribe-1.3.5.jar')
    compile files('libs/json_simple-1.1.jar')
    compile 'com.google.android.gms:play-services:5.0.77'
    // Can't be higher than 19 if we want to support smaller android versions
    compile 'com.android.support:appcompat-v7:19.+'
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    compile 'com.android.support:support-v4:19.+'
    // This Mockito includes all dependancies (great for us)
    testCompile "org.mockito:mockito-core:1.9.+"
    testCompile 'org.hamcrest:hamcrest-all:1.3'
    testCompile 'org.objenesis:objenesis:1.2'
}

Ответ 1

Вы должны использовать androidTestCompile, а не testCompile. Если это связано с изменением области зависимости через диалоговое окно "Структура проекта", тогда появляется ошибка, в которой для настройки зависимости используется неверный оператор. Я зарегистрировал https://code.google.com/p/android/issues/detail?id=74771 для этого.

Ответ 2

Я наткнулся на этот пост через год. У меня возникла эта проблема, потому что я унаследовал более старый проект, который использовал устаревшие инструменты сборки Gradle в файле сборки Gradle. Я исправил эту проблему, обновив инструменты сборки Gradle, которые вам нужно сделать, по-видимому, путем увеличения номера версии в файле сборки Gradle:

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

где X.X является последним номером версии средств сборки Gradle. Прямо сейчас я использую Android Studio v1.2, и у меня есть номер версии инструментов для сборки, установленный на:

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

Я столкнулся с этой проблемой, когда пытался реализовать модульные тесты, которые теперь встроены в Android Studio.

Надеюсь, это поможет кому-то с той же проблемой.

Ответ 3

Я также получил эту ошибку "method not found" testcompile() ". Проблема заключалась в том, что у меня был testCompile 'junit: junit: 4.12' в файле build.gradle проекта, а не в файле build.gradle приложения. Как я мог знать, что это был неправильный файл? В файле проекта указывается только" ПРИМЕЧАНИЕ. Не размещайте зависимостей вашего приложения здесь, они принадлежат отдельному модулю build.gradle files". Такой простой ответ неудивительно, что я не смог его найти.

Ответ 4

У меня есть проект библиотеки. Я верил в документацию по Android и поместил оператор testCompile в файл верхнего уровня build.gradle. Оказывается, это действительно должно было быть в моем модуле build.gradle.