「依存関係」は「(groovy.lang.Closure)」に適用できません


121

このエラーを修正できません:

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
これらは非常に関連していると確信しています。そこでの私の回答が示唆しているように、エラーマーキングはバグであり、したがってソリューションの不一致だと思います。stackoverflow.com/questions/29133601/…それは、ここでのトップの回答が「現在の」gradleビルドスクリプトについていくつかの非常に有効な一般的なポイントを作らないと言っているのではありません
Seb Andraos

回答:


22

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()
    }
}

11
私はそれでも同じ問題を抱えていました:(
Ashwani Kottapalli

正直なところ、Crouton、Universal-Image-Loader、googleplayServicesの依存関係の余分な引用符とスペースを修正する必要があると思います。developer.android.com/google/play-services/setup.htmlに
EpicPandaForce 2015

それが機能していない...あなたに私にFB IDまたは他のものを与えてもらえますか?お願いします?
アシュワニコッタパリ2015

...その場合、バグが何であるかわかりません。:(これが私に最後に起こったとき、私のandroidとgradleプラグインは古くなっていて、もう存在しない設定タイプを使用していました
EpicPandaForce

1
コマンドラインとIDEのどちらを使用しているかによって異なります。そしてIDEなら、どんなIDEか。
EpicPandaForce 2015

247

[設定]に移動し、[デフォルトのGradleラッパーを使用]を選択して、プロジェクトを再ビルドできます。それは私にとってうまくいきました: ここに画像の説明を入力してください


4
なぜこれが起こるのか誰かに説明がありますか?
2015

1
1.4から1.5に更新した後、この設定は私のマシンでローカル配布を使用するように「リセット」されたようです。この答えは間違いなく問題を解決しました。
appearing.amusing

3
143.2532994バージョンの時点で、この問題は再び発生するようです...私と同じ誰か...?とても煩わしい..
2016年

選択された回答は非常に手の込んだ正直なものですが、この回答の方が桁違いに賛成票を投じているのには理由があります
Pavel Zdenek

ああ、はい、理由があります-Macユーザー。Windowsでは、ページが異なります。「表示するものはありません」。マークされた答えは、少なくとも何らかの形で役立ちます。
Gangnus

37

に行く

ウィンドウズ

ファイル->設定->ビルド、実行、デプロイメント->ビルドツール-> Gradle

マック

設定->ビルド、実行、デプロイメント->ビルドツール-> Gradle

[デフォルトのGradleラッパーを使用]を選択します


1
ウィンドウズ。選択するものはありません。
Gangnus

2
最初に、プロジェクトを最初に開く必要があります。
ラプター2016年

そして、上のLinuxはWindows上と同じだ:ファイル- >設定- >ビルド、実行、展開- >ビルドツール- >のGradle。回答を編集して「Windows / Linux」と書くことができます。
lenooh

18

私の問題は、build.settingファイル全体がcannot be applied to '(groovy.lang.Closure)'特定の変数で発生するのではなく、警告メッセージで占有されていたことです。

他の人から提供されたすべての解決策を試しましたが、どれもうまくいきませんでした。私はこれらの手順を実行することを終え、それは魅力のように機能します。同じ問題が発生した場合は、お試しください。

  1. ファイルを開いて編集します。 yourproject/gradle/wrapper/gradle-wrapper.properties。コンテンツを編集して、下の画像に示すようにGradleディストリビューションバージョンを更新し、保存します。
  2. このフォルダを削除:yourproject/.gradle
  3. をクリックするとSync project with gradle files、準備完了です。

ここに画像の説明を入力してください


1
yourproject / .gradleディレクトリを削除する必要はありません。そうする場合は、org.gradle.daemon = true(一般的な最適化)でgradle.propertiesファイルを追加するなど、そこで行ったカスタマイズを必ず保存してください。ただし、単純に再ビルドすることができ、gradleラッパーは、古いバージョンとともに、distributionUrlで指定された新しいバージョンをダウンロードします。古いバージョンのディレクトリをプロジェクトのgradleディレクトリに残しても問題ありません。
マークマクレランド

でgradleバージョンを更新すると、gradle-wrapper.properties私の問題が解決しました。ありがとう!
BVB、2015

18

「デフォルトの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にとっても)


私のために働いた。注意すべき唯一のことは、バンドルされているものの代わりに独自のgradleを使用している場合.gradleは、ホームディレクトリからも削除する必要があることです。

1
2)指示を行うだけでうまくいきました。ありがとう!!
manolodewiner 2016年

2
働いた... 5秒間。その後、再びそのエラーが発生しました。
Yar

IntelliJが最近プロジェクトを適切に解析することでいかにひどくなってきたのか、少しイライラしています。これはかつてその強みでした...今では、それはほんのわずかなものでつまずくように感じています。
smaudet 2017年

4

gradleホームディレクトリが間違っているという警告に気づいたとき、私は他の答えの1つを試すために設定に入りました。そこで、ファイルブラウザーを開いて新しいgradleバージョンを選択すると、すべてのエラーがなくなりました。以下の画像。

ここに画像の説明を入力してください


1

問題はあなたに警告を与えているコードの一部とは完全に無関係であるに違いない。おそらくそれはあなたのプロガードファイルだ。私のコードには以下があり、同じ警告が表示されました:

buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

コメントアウトすることrunProguard falseで、私の問題はすべてなくなり、図に行く:)


ダニエルウィルソンはrunProguardminifyEnabled代わりに変更すると役立ちますか?詳細はこちら
セルギーN.

1

私はandroid studio 2.2で同じ問題があります。それは私のために働きます:

元の:

android {
...
}

dependencies {
...
}

移動dependenciesandroid

android {
...
   dependencies {
   ...
   }
}

1

キャッシュを無効にして再起動することで、Android Studioの問題を解決しました。

File-> Invalidate Caches / Restart..

ここに画像の説明を入力してください


1

KotlinプロジェクトのIntelliJで、これと同様の問題に遭遇しました。私のプロジェクトでは、JDK 8を使用するように設定されていても、言語とAPIのバージョンがどういうわけか1.3に設定されていたことが問題のようです。「プロジェクト設定」>「ファセット」を参照してください。私の場合、「プロジェクト設定を使用」にチェックマークを付けましたが、ファセットごとに手動で設定することもできます。


0
  1. プロジェクトを閉じます(ファイル/プロジェクトを閉じる)。
  2. スタートメニューで[既存のAndroid Studioプロジェクトを開く]を選択し、Androidプロジェクトが含まれているフォルダーを選択します。

この仕事は私にとって。


0

Gradleファイルは、このようなエラーを回避するためにいくつかの場所で明示的にすることができます。たとえば変更

configurations {

project.configurations {

または

task {
    description 'foo'

task {
    setDescription 'foo'

0

この問題を解決するには、プロジェクトを閉じてから、スタートメニューで[既存のAndroid Studioプロジェクトを開く]を選択し、Androidプロジェクトが含まれているフォルダーを選択します。.imlプロジェクトファイルではなく、フォルダーを選択してください


0

「buildTypes」を切り取り、「android」セクションの同じ場所に貼り付けて、プロジェクトを再同期(更新)します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.