web-dev-qa-db-ja.com

「依存関係」は「(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
    }
 }
118

Android St​​udioが生成するものに基づいて、トップレベルのプロジェクトファイル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 St​​udioでもこのエラーが発生し始めました。新しいバージョンの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()
    }
}
22
EpicPandaForce

[設定]に移動し、[デフォルトgradleラッパーを使用]を選択して、プロジェクトを再構築できます。私にとってはうまくいった: enter image description here

247
codingpuss

に行く

Windows

ファイル->設定->ビルド、実行、展開->ビルドツール-> Gradle

Mac

設定->ビルド、実行、展開->ビルドツール-> Gradle

そして、デフォルトのGradleラッパーを使用するを選択します

37
Mark Pazon

私の問題は、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をクリックすると、準備完了です。

enter image description here

18
Arst

既に「デフォルト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 St​​udioおよびIntelliJ Ideaで機能しました)

18
Andrey

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

enter image description here

4
craned

この問題は、警告を発しているコードとはまったく関係がありません。おそらく、それはプロガードファイルです。私のコードには次のものがあり、同じ警告が表示されました。

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

runProguard falseをコメントアウトすることで、私の問題はすべて消え去り、図に進みます:)

1
Daniel Wilson

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

File-> Invalidate Caches / Restart..

enter image description here

1
ahmadalibaloch

Android studio 2.2でも同じ問題が発生します。

元の:

Android {
...
}

dependencies {
...
}

dependenciesAndroidを移動:

Android {
...
   dependencies {
   ...
   }
}
1
Yakami

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

0
Webdma

「Android」セクションの同じ場所に「buildTypes」をカットアンドペーストして、プロジェクトを再同期(更新)します

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

これは私のために働きます。

0
zerob13

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

configurations {

project.configurations {

または

task {
    description 'foo'

task {
    setDescription 'foo'
0
tkruse

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

0
Tim Keating