"зависимости" не могут применяться к '(groovy.lang.Closure)'
Я не могу исправить эту ошибку:
dependencies cannot be applied to '(groovy.lang.Closure)
Это мой файл gradle:
buildscript {
repositories {
maven { url 'http://download.crashlytics.com/maven' }
}
dependencies {
classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
}
}
apply plugin: 'android'
apply plugin: 'crashlytics'
repositories {
maven { url 'http://download.crashlytics.com/maven' }
}
dependencies {
compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':FRNDzTER_core')
compile project(':cropper')
compile project(':stickyListHeaders')
compile "com.nostra13.universalimageloader:universal-image-loader:${rootProject.universalImageLoaderVersion}"
compile "com.google.android.gms:play- services:${rootProject.googlePlayServicesVersion}"
compile "de.keyboardsurfer.android.widget:crouton:${rootProject.croutonVersion}"
compile "com.nineoldandroids:library:${rootProject.nineoldandroidsVersion}"
compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+'
compile 'com.crashlytics.android:crashlytics:1.+'
}
android{
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode rootProject.versionCode
versionName rootProject.versionName
}
buildTypes {
release {
debuggable rootProject.prodDebug
proguardFile 'proguard.cfg'
}
}
dependencies {
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
lintOptions {
abortOnError false
}
}
Ответы
Ответ 1
На основе того, что генерирует Android Studio, вам нужен файл проекта верхнего уровня build.gradle
, а другой для вашего приложения build.gradle
.
верхнего уровня:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
maven { url 'http://download.crashlytics.com/maven' }
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven { url 'http://download.crashlytics.com/maven' }
}
}
Уровень приложения:
apply plugin: 'com.android.application'
apply plugin: 'crashlytics'
android{
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode rootProject.versionCode
versionName rootProject.versionName
}
buildTypes {
release {
debuggable rootProject.prodDebug
proguardFile 'proguard.cfg'
}
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
lintOptions {
abortOnError false
}
} `
dependencies {
compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':FRNDzTER_core')
compile project(':cropper')
compile project(':stickyListHeaders')
compile "com.nostra13.universalimageloader:universal-image- l loader:${rootProject.universalImageLoaderVersion}"
compile "com.google.android.gms:play- services:${rootProject.googlePlayServicesVersion}"
compile " "de.keyboardsurfer.android.widget:crouton:${rootProject.croutonVersion}"
compile "com.nineoldandroids:library:${rootProject.nineoldandroidsVersion}"
compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+'
compile 'com.crashlytics.android:crashlytics:1.+'
}
Но даже без этого ваша проблема в том, что у вас есть dependencies
в вашей конфигурации плагина android
.
android {
dependencies {
}
}
удалите этот пустой dependencies
блок.
EDIT: я также начал получать эту ошибку с последней версией Android Studio, все, что мне нужно было сделать, это добавить новую версию плагина Gradle и compileSdkVersion 22.
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
Ответ 2
Вы можете перейти к настройкам и выбрать "использовать по умолчанию gradle обертку", а затем перестроить проект. Это сработало для меня:
![введите описание изображения здесь]()
Ответ 3
Перейдите к
Окно
Файл → Настройки → Сборка, выполнение, развертывание → Инструменты сборки → Gradle
Mac
Предпочтение → Сборка, выполнение, развертывание → Инструменты сборки → Gradle
и выберите Использовать по умолчанию Gradle обертку
Ответ 4
Моя проблема в том, что весь файл build.setting был занят cannot be applied to '(groovy.lang.Closure)'
предупреждающими сообщениями вместо того, чтобы происходить на какой-либо конкретной переменной.
Я пробовал все решения, предоставляемые другими, но никто из них не работает для меня.
Я закончил делать эти шаги, тогда это работает как шарм. Если вы столкнулись с одной и той же проблемой, попробуйте попробовать.
- Откройте и отредактируйте файл:
yourproject/gradle/wrapper/gradle-wrapper.properties
. Измените содержимое, чтобы обновить версию дистрибутива gradle, как показано на изображении ниже, затем сохраните.
- Удалить эту папку:
yourproject/.gradle
.
- Нажмите
Sync project with gradle files
, тогда вам будет хорошо.
![введите описание изображения здесь]()
Ответ 5
Если вы уже используете "по умолчанию gradle обертка", и это не помогает:
In Menu click: File -> Invalidate Caches / Restart...
Если он также не поможет выполнить два шага:
1) Delete ".gradle" folder (and "build" folder if you have it already)
2) In Menu click: File -> Invalidate Caches / Restart...
После перезапуска предупреждение должно исчезнуть.
(Для меня это сработало и для Android Studio и для IntelliJ Idea)
Ответ 6
Я воспользовался настройками, чтобы попробовать один из других ответов, когда я заметил предупреждение о том, что мой домашний каталог gradle
был неправильным. Поэтому я открыл браузер файлов и выбрал новую версию gradle
, и все ошибки исчезли. Изображение, показанное ниже.
![введите описание изображения здесь]()
Ответ 7
Готов поспорить, что проблема полностью не связана с частью кода, которая дает вам предупреждения, скорее всего, это ваш файл proguard. В моем коде я получил следующее предупреждение:
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
Прокомментировав runProguard false
, все мои проблемы уйдут, иди цифрой:)
Ответ 8
У меня такая же проблема в android studio 2.2, она работает для меня:
оригинал:
android {
...
}
dependencies {
...
}
переместить dependencies
в android
:
android {
...
dependencies {
...
}
}
Ответ 9
- Закройте проект (файл/закрыть проект),
- Выберите "Открыть существующий проект Android Studio" в меню "Пуск" и выберите папку, содержащую ваш проект Android.
Эта работа для меня.
Ответ 10
Gradle файлы можно сделать явным в нескольких местах, чтобы избежать таких ошибок. Например. Изменение
configurations {
to
project.configurations {
или
task {
description 'foo'
к
task {
setDescription 'foo'
Ответ 11
Чтобы устранить проблему, просто закройте проект, затем выберите "Открыть существующий проект Android Studio" в меню "Пуск" и выберите папку, содержащую ваш проект Android. Остерегайтесь, выберите папку, а не файл проекта .iml.
Ответ 12
Я решил проблему в Android Studio, выполнив недействительность кэша и перезагрузив его.
File-> Invalidate Caches / Restart..
![введите описание изображения здесь]()
Ответ 13
Вырезать, а затем вставить "buildTypes" в том же месте в разделе "android" и "Re-Sync (refresh) Project
Ответ 14
Я исправил эту проблему с помощью gradle 2.10.
Загрузите его здесь: http://gradle.org/gradle-download/
И установите локальный дистрибутив gradle следующим образом:
![as shown here]()