2014-12-23 5 views
73

У меня была ошибка градиента.Gradle DSL метод не найден: 'compile()'

Error:(9, 0) Gradle DSL method not found: 'compile()'

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

Android gradle build Error:(9, 0) Gradle DSL method not found: 'compile()'.

Getting Error "Gradle DSL method not found: 'compile()'" when Syncing Build.Gradle

Unsupported Gradle DSL method found: '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' 
} 

Что случилось с моим кодом?

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

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

+0

Возможного дубликат [Неподдерживаемого Gradle метода DSL найден: «компилировать()»] (http://stackoverflow.com/ вопросы/24730117/unsupported-gradle-dsl-method-found-compile) – naXa

ответ

103

В записке 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.+' 
} 
+2

@ T.Akashi, пожалуйста, отметьте этот ответ как правильный! –

+0

Что делать, если у моего проекта андроида нет модулей? – arun8

+0

i ws using com.android.support:support-compat:23.0.0 bt это было com.android.support:support-v4:23.0.0 – 10101010

36

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

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

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

+0

Это еще одна возможность, почему эта ошибка может возникнуть @Drew –

+0

Хорошо, это любопытное читается как вопрос. Не хочу, чтобы его удалили. – Drew

+1

Спасибо, я только что нашел, что IDEA действительно переформатировал мой файл Gradle и сделал две строки в одном. Вы отвечаете на мои работы. – speedcell4

7

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

+0

Именно это произошло, когда я обновил конфигурацию «подписи» в настройках модуля. –

2

Проверьте свой проект. есть 2 build.gradle.

Move your compile line to another build.gradle 
31

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

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

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" 

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

+0

Именно это ... по какой-то причине что-то вытащило мои компиляционные утверждения на одну строку –

+0

Смотрите это: https://stackoverflow.com/questions/36844572/android-studio-broke-up-my-build-gradle-file- after-add-a-fragment –

+0

и https://issuetracker.google.com/issues/37076867 –

5

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

enter image description here

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

0

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

0

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

Смежные вопросы