このエラーを修正できません:
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
}
}
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
ブロックを削除します。
編集:最新の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()
}
}
に行く
Windows
ファイル->設定->ビルド、実行、展開->ビルドツール-> Gradle
Mac
設定->ビルド、実行、展開->ビルドツール-> Gradle
そして、デフォルトのGradleラッパーを使用するを選択します
私の問題は、build.settingファイル全体が、特定の変数で発生するのではなく、cannot be applied to '(groovy.lang.Closure)'
警告メッセージで占められていることです。
私は他の人が提供するすべてのソリューションを試しましたが、それらのどれも私にはうまくいきません。私はこれらの手順を実行することになり、それは魅力のように機能します。同じ問題が発生している場合は、試してみてください。
yourproject/gradle/wrapper/gradle-wrapper.properties
。以下の画像に示すように、コンテンツを編集してgradle配布バージョンを更新し、保存します。yourproject/.gradle
。Sync project with gradle files
をクリックすると、準備完了です。既に「デフォルトgradleラッパー」を使用していて、それが役に立たない場合:
In Menu click: File -> Invalidate Caches / Restart...
2つの手順で試しても解決しない場合:
1) Delete ".gradle" folder (and "build" folder if you have it already)
2) In Menu click: File -> Invalidate Caches / Restart...
再起動後、警告は消えます。
(私にとっては、Android StudioおよびIntelliJ Ideaで機能しました)
この問題は、警告を発しているコードとはまったく関係がありません。おそらく、それはプロガードファイルです。私のコードには次のものがあり、同じ警告が表示されました。
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
}
}
runProguard false
をコメントアウトすることで、私の問題はすべて消え去り、図に進みます:)
Android studio 2.2でも同じ問題が発生します。
元の:
Android {
...
}
dependencies {
...
}
dependencies
のAndroid
を移動:
Android {
...
dependencies {
...
}
}
この問題を解決するには、プロジェクトを閉じてから、[スタート]メニューで[既存のAndroid Studioプロジェクトを開く]を選択し、Androidプロジェクトを含むフォルダーを選択します。 .imlプロジェクトファイルではなく、folderを選択してください。
「Android」セクションの同じ場所に「buildTypes」をカットアンドペーストして、プロジェクトを再同期(更新)します
これは私のために働きます。
このようなエラーを回避するために、Gradleファイルをいくつかの場所で明示的に作成できます。例えば。変化する
configurations {
に
project.configurations {
または
task {
description 'foo'
に
task {
setDescription 'foo'
KotlinプロジェクトのIntelliJでこれと同様の問題に遭遇しました。問題は、私のプロジェクトでは、JDK 8を使用するように設定されていたにもかかわらず、言語とAPIのバージョンが何らかの形で1.3に設定されていたようです。 [プロジェクトの設定]> [ファセット]を参照してください。私の場合、「プロジェクト設定を使用する」にチェックマークを付けましたが、ファセットごとに手動で設定することもできます。