Метод Gradle DSL не найден: 'compile()'

У меня была эта ошибка gradle.

Ошибка:(9, 0) метод Gradle DSL не найден: 'compile ()'

Я пытался ссылаться на подобные вопросы, но это не сработало.

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

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

Обнаружен неподдерживаемый метод Gradle DSL: 'compile()'!

мой build.gradle код здесь

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

allprojects {
    repositories {
        jcenter()
    }
}

build.gradle(Module.app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.1"

    defaultConfig {
        applicationId "com.example.simplemaker.pushtest"
        minSdkVersion 9
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}

Что не так с моим кодом?

Извините за мой английский.

Большое спасибо!

8 ответов

Решение

Как примечание вашего проекта build.gradle файл предлагает:

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

Удалите 2 оператора компиляции в этом файле Gradle:

compile 'com.android.support:appcompat-v7:20.+'
compile 'com.google.android.gms:play-services:6.5.+'

А потом сделай свой другой (модуль) build.gradle зависимости выглядят так:

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

Я использую Android-студию на основе IntelliJ Idea, и я изменил Настройки, когда и как переносить код. Также у меня были опции "переформатировать автоматически", которые приводили к случайному форматированию файлов Gradle. Так что это приведет к чему-то вроде этого:

    compile 'de.greenrobot:eventbus:2.4.0' compile 'com.jakewharton:butterknife:7.0.1'

Затем Gradle не может найти compile() для второй компиляции. Так как вы разрешаете писать только одну зависимость на строку.

Это действительно глупая проблема, и я получил решение:

как операторы компиляции идут в одну строку

compile "com.squareup.okhttp3:okhttp:$okHttpVersion"    compile "com.squareup.okhttp3:okhttp-urlconnection:$okHttpVersion"    compile "com.squareup.okhttp3:logging-interceptor:$okHttpVersion"    compile "com.google.code.gson:gson:$gsonVersion"

Я просто изменил следующую строку и решил свою проблему:

compile "com.squareup.okhttp3:okhttp:$okHttpVersion"
compile "com.squareup.okhttp3:okhttp-urlconnection:$okHttpVersion"
compile "com.squareup.okhttp3:logging-interceptor:$okHttpVersion"
compile "com.google.code.gson:gson:$gsonVersion"

Надеюсь, это поможет вам. Спасибо.

Проверьте файлы build.gradle, иногда, когда вы добавляете модуль в текущий модуль с использованием настроек проекта, build.gradle текущего модуля поврежден, а отступы нарушены, просто проверьте текущий build.gradle и проверьте, все ли операторы компиляции выпущены в новой строке!

Помимо правильных ответов, уже приведенных выше - картинка для более подробного объяснения:

Проект имеет 2 билда. Вам нужен выделенный: build.gradle (Модуль: приложение)

Проверьте свой проект. есть 2 билда.

Move your compile line to another build.gradle

Зависимости приложения должны быть включены в файл app -> build.gradle. Нет в Project -> build.gradle.

Простая ошибка также может вызвать эту проблему, не включайте classpath зависимости к build.gradle(Module:app)

В моем случае я получал эту ошибку, потому что у меня была строка реализации зависимости за пределами dependenciesблок. Что-то вроде этого:

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

implementation 'androidx.media:media:1.1.0'

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

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

Веселого кодирования!

Другие вопросы по тегам