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
![введите описание изображения здесь]()