Android gradle build Ошибка: (9, 0) gradle Метод DSL не найден: 'compile()'.

Я получаю следующую ошибку сборки при попытке синхронизации проекта:

Error:(9, 0) Gradle DSL method not found: 'compile()'
Possible causes:The project 'AlexTest' may be using a version of Gradle that does not contain the method.
The build file may be missing a Gradle plugin.
link: Apply Gradle plugin

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

Вот файл build.gradle для AlexTest (каталог проекта):

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.13.2'
        compile 'com.google.android.gms:play-services:6.1.11'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

Я думаю, что это был файл gradle, с которым он столкнулся. Но я не уверен, какой метод он имеет в виду.

Также здесь gradle -wrapper.properties, на который он также ссылался:

#Mon Nov 10 01:06:12 PST 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip

возможно, версия gradle в дистрибутивеUrl должна соответствовать той, которая находится в зависимости?

У меня также есть файл build.gradle в самом каталоге приложения - на 1 уровень ниже, хотя я не думаю, что это то, о чем он говорил, но вот он:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 20
    buildToolsVersion "21.1.1"

    defaultConfig {
        applicationId "com.snappiesticker.alextest"
        minSdkVersion 16
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.gms:play-services:6.1.+'
}

Ответ 1

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

Правильно.

Вот файл build.gradle для AlexTest (каталог проекта):

Вы заметите, что этот файл содержит комментарий к коду:

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

Удалите строку compile 'com.google.android.gms:play-services:6.1.11' из этого файла. Оставьте compile 'com.google.android.gms:play-services:6.1.+', который у вас есть в другом файле build.gradle.

Закрытие dependencies в buildscript доступно только для gradle плагинов. Закрытие верхнего уровня dependencies, найденное в файле build.gradle модуля, предназначено для зависимостей приложений.

Ответ 2

Пила сообщает, что проблема возникла по другим причинам, но это решило для меня.

Если вы внесете какие-либо изменения в структуру проекта (Android Studio) и нажмите OK, будет синхронизирован Gradle, но этот тип синхронизации, если блок зависимостей имеет что-то вроде:

Этот блок останется после синхронизации:

Один из способов решения проблемы - вставить разрыв строки, чтобы он оставался таким же, как и до синхронизации, или поставил точку с запятой между двумя операторами.

Надеюсь, это поможет.

Ответ 3

Просто добавьте в свои зависимости выражение foolwoing

применить плагин: 'jetty'

Ответ 4

Привет всем, для меня это была "работа на пару дней", чтобы приложение запускалось в Android Studio (Я перенес из Eclipse и тоже имел эту проблему). Наконец, я нашел этот очень простой способ.

  • Создайте папку libs под src/main/java/это приложение /java/libs в левой панели.
  • Скопируйте и вставьте все внешние банки сюда.
  • Откройте левую панель и щелкните правой кнопкой мыши на своем приложении, затем нажмите "Открыть настройки модуля"
  • Появится окно "Структура проекта".
  • Затем перейдите на вкладку "Зависимости". Заключительный шаг: добавьте все свои банки в App/java/libs (вы найдете их в src/main/java/libs) по очереди.

Вот и все. Наслаждайтесь этим.

Ответ 5

Объявить зависимости в модуле build.gradle, а не в файле AlexTest build.gradle

введите описание изображения здесь