Получение ошибки "Gradle Метод DSL не найден: 'compile()'" при Syncing Build.Gradle

Error after resolutionproject is staymax2 build.gradle files that i am working on Чтобы добавить библиотеки поддержки V4 в студию android, я следил за этим документом: https://developer.android.com/tools/support-library/setup.html#libs-without-res, но я получить сообщение об ошибке. Вот что я сделал

  • Менеджер SDK > Установленная библиотека поддержки Android и репозиторий Android.
  • Перейдите в Build.Gradle и добавьте строку, указанную в dcoument. Build.Gradle теперь выглядит следующим образом:

//Файл сборки верхнего уровня, где вы можете добавить параметры конфигурации, общие для всех подпроектов/модулей.

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:0.13.2'

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

allprojects {
repositories {
    jcenter()
    dependencies {

        compile "com.android.support:support-v4:18.0.+"
    }
}

}

Затем я получаю всплывающее окно, предлагающее синхронизировать gradle. Когда я синхронизирую Gradle, я получаю эту ошибку:

Ошибка: (20, 0) Gradle Метод DSL не найден: 'compile()' Возможные причины:

В проекте "staymax" может использоваться версия Gradle, которая не содержит метод. Откройте файл оболочки Gradle В файле сборки может отсутствовать плагин Gradle. Примените плагин Gradle

Я пропустил какой-нибудь шаг? Пожалуйста, предложите.

build.gradle(приложение)

apply plugin: 'com.android.application'

android {
compileSdkVersion 20
buildToolsVersion "20.0.0"

defaultConfig {
    applicationId "com.appt.shreyabisht.staymax"
    minSdkVersion 15
    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'])
}

Ответ 1

Почти во всех случаях ваши зависимости должны быть помещены в отдельные файлы build.gradle модуля, а не в файл build.gradle самого высокого уровня. В вашем случае это означает, что зависимость должна быть добавлена ​​в файл сборки app build.gradle:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile "com.android.support:support-v4:18.0.+"
}

И вы должны удалить всю часть allprojects верхнего уровня build.gradle.

Ответ 2

Я обнаружил, что когда я добавляю applicationSuffix или versionNameSuffix через меню IDE (Build > Edit Build Types), он меняет раздел зависимостей моего приложения build.gradle из этого

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    testCompile 'org.json:json:20140107'

    compile "com.android.support:appcompat-v7:${supportLibVersion}" 
    compile "com.android.support:design:${supportLibVersion}" 
    compile "com.android.support:support-vector-drawable:${supportLibVersion}" // VectorDrawableCompat
    compile "com.android.support:animated-vector-drawable:${supportLibVersion}" // AnimatedVectorDrawableCompat
}

к этому:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    testCompile 'org.json:json:20140107'
    compile "com.android.support:appcompat-v7:${supportLibVersion}" compile "com.android.support:design:${supportLibVersion}" compile "com.android.support:support-vector-drawable:${supportLibVersion}"
    // VectorDrawableCompat
    compile "com.android.support:animated-vector-drawable:${supportLibVersion}"
    // AnimatedVectorDrawableCompat
}

Я не знаю почему, но он объединяет первые три "компилирования" строк в одну строку и перемещает два комментария (в следующую строку в каждом случае).

Я решил проблему, отредактировав приложение build.gradle и поместив каждое выражение "compile" в свою собственную строку.

Ответ 3

Это сработало для меня:

  • Закройте Android Studio.
  • Удалите папку <home folder>/.gradle.
  • Перезапустите Android-студию и снова загрузите все модули gradle.

P.S.: Mine был новым проектом, поэтому я удалил проект и создал новый, поэтому не было старых gradle ссылок из проекта

Ответ 4

В моем случае в моем проекте есть 2 файла build.gradle(он автоматически создается с помощью студии android при создании нового проекта)

Просто переместите строку компиляции на другую, решив мою проблему

Ответ 5

У вас есть 2 разных build.gradle (иногда больше в зависимости от вас)

Только одно из них - ваше приложение gradle, а другое - проект gradle.

Если вы поместите проект зависимостей gradle, вы можете получить сообщение об ошибке: Gradle DSL method not found: 'compile()'

Поместите свои зависимости в приложение build.gradle, тогда он будет работать.

Ответ 6

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

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

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

Ответ 8

У меня такая же проблема, и ошибка - это мой build.gradle уровня приложения имеет зависимости моих подмодулей. Средства

dependencies {
   compile project(':library')
  compile project(':MPChartLib')
}

Я просто удаляю две строки внутри фигур зависимостей, и он может начать синхронизацию.

Ответ 9

Удаление .gradle в моей папке проекта выполнило эту работу для меня.

Ответ 10

Убедитесь, что в вашем проекте есть файл settings.gradle. Добавив это, я решил для меня проблему Error:Gradle DSL method not found: 'minSdkVersion()'.