Метод 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'
Обратите внимание, что все вызовы реализации должны быть определены в блоке зависимостей. Это простое решение.
Надеюсь, это кому-то поможет.
Веселого кодирования!