Подтвердить что ты не робот

Gradle Метод DSL не найден: "classpath()"

Я работаю над проектом Android, который использовал Gradle, как указано ниже.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

dependencies {
    classpath 'com.android.tools.build:gradle:0.12.+'
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':workspace:darkmoon:darul-android:vitamio:vitamio')
    compile project(':Dev:adt-bundle-mac-x86_64:sdk:extras:google:google_play_services:libproject:google-play-services_lib')
}

android {
    compileSdkVersion 19
    buildToolsVersion "20.0.0"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

Но когда я его создаю, продолжайте получать эту ошибку: "Gradle Метод DSL не найден", и он указал на следующая строка:

dependencies {
    classpath 'com.android.tools.build:gradle:0.12.+'
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':workspace:epsilonmobile:darul-android:vitamio:vitamio')
    compile project(':Dev:adt-bundle-mac-x86_64:sdk:extras:google:google_play_services:libproject:google-play-services_lib')
}

Извините, если этот вопрос немного нуб, я новичок как для Gradle, так и для Android Studio

4b9b3361

Ответ 1

Конфигурация

A classpath доступна только для зависимостей buildscript. Вам нужно избавиться от строки classpath 'com.android.tools.build:gradle:0.12.+' в верхнем уровне dependencies. (Gradle плагины должны быть объявлены под buildscript { dependencies { ... } }.)

Ответ 2

В gradle script buildscript - это специальный раздел, в котором вы можете объявлять зависимости самого сборки script (т.е. двоичные файлы, необходимые для процесса сборки).

Процесс сборки gradle представляет собой не что иное, как процесс java, и поэтому он поддерживает обычные зависимости в classpath.

com.android.tools.build:gradle:0.12.+ идентифицировать двоичный файл, необходимый для процесса сборки (он содержит код, способный понять/выполнить раздел андроида сборки script).

Андроид apk, который будет создан этим script, не нуждается в бинарном com.android.tools.build:gradle:0.12.+ для запуска на вашем устройстве Android (т.е. apk, конечно, уже собирается, когда он запускается на устройстве): нет причина объявить его снова в зависимостях верхнего уровня (это зависимости, требуемые вашим приложением)