buildTypesはgroovy.lang.Closureに適用できません


241

私のプロジェクトのgradleファイルでこの警告を受けています:

警告:(16、5)「buildTypes」は「(groovy.lang.Closure <com.android.build.gradle.internal.dsl.BuildType>)」に適用できません

私のbuildTypesセクションは:

    buildTypes {
        debug {
            debuggable true
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }
    }

現在、Android Studio 1.1.0、compileSdkVersion 22、buildToolsVersion 22.0.0、およびtargetSdkVersion 22を使用しています。21に戻してみましたが、それでも警告が表示されていました。

この警告の原因と修正方法を教えてください。


プラグイン「com.android.aplication」または「com.android.library」を適用しましたか?
キリルボヤルシノフ2015年

@キリル:com.android.application
Jim

回答:


471

私にとって、上記の解決策を適用しても問題は解決しませんでした。代わりに、Android Studio内の設定に移動して、[Use gradle wrapper]を選択する必要がありました。

Android Studioで次を選択します 。File\ Settings \ Build、Execution、Deployment \ Build tools \ Gradle

(Macユーザー:Android Studio \ Preferences ... \ Build、Execution、Deployment \ Build tools \ Gradle

マーク:デフォルトのGradleラッパーを使用(デフォルト)

これにより、ビルドファイルのすべての「(groovy.lang.Closure」に適用できない)警告が削除されました。


2
これが正解です。Windowsでプロジェクトを開いた後、(Dropboxを介して)Linuxで問題が発生したため、gradleディストリビューションの場所が変更されるため、デフォルトのgradleラッパーを使用することをお勧めします。
ロドリゴディレイト2015年

1
同じ問題がありました。私のチームメイトはWindowsマシンで働いています。アップデートを取得するとこの問題が発生します
チップ

@Waterbear私はこれのために元の回答を編集しました(これについてもしばらく検索しました:D)。ピアレビュー後、利用可能になります:)参照:i.imgur.com/BtCijIW.png
StefMa

どういうわけかMac上の1.3.1 ASは、ビルド->クリーンでこの設定をリセットしました。それを設定すると、ビルドが修正されます。ありがとう!
Den Drobiazko

11
ビルドターゲット22とbuildToolsVersion 22.0.1で作成したときに、Android Studioの馬鹿げた警告が表示され始めました。私にとっては、「デフォルトのGradleラッパーを使用する」はすでにデフォルトとしてマークされていました(AS 2.0 Beta)...コードブロックを切り取り、同じ場所に貼り付けます(コードの変更、構成の変更はありません)...警告が削除されました!
Umair 2016年

127

同じ問題がありました。androidセクションの最後のエントリとしてbuildTypesを移動するとうまくいきました。

android {
    ...
    buildTypes {
    }
}

2
その位置が違いを生むはずなのに奇妙なことですが、明らかにそうです。
ジェイソンクロスビー

これも私にとってはうまくいきます。これがどのように機能するかについてのアイデアはありますか?ありがとう。
myNameCoad

4
これも私には有効なようですが、変更を元に戻し、そのブロックを同じ場所にコピー/貼り付けたため、警告も消えました。その後、すべてを元に戻し、プロジェクトを閉じて再度開き、警告を再現しようとしましたが、消えていました。それは、そうした警告の1つにすぎないと思います。
elliptic1

私にとって、に関する警告を除いて、ほとんどの警告はピーターの回答によってクリアされましたbuildTypes。次に、このソリューションは最後のソリューションで機能しました!
はた

76

1「android」セクションの同じ位置に「buildTypes」をカットアンドペーストします

2 Re Sync Project


16

この問題を解決するには、Android Studioで[ファイル]-> [設定]に移動します。設定で、ビルド、実行、デプロイメント->ビルドツール-> Gradle を選択し、[ デフォルトのGradle ラッパーを使用する(推奨) ]オプションを選択します。

再ビルド後、build.gradleは完全に正常になります。


1
これが正解です。または適切なGradleの場所を選択できます
voidポインター

1
@Peterの回答とはどのように異なるか。
AndyW 2016

13

上記のオプションのいずれも機能しない場合は、以下を実行してください

  1. Project「プロジェクトエクスプローラ」でプロジェクトをパースペクティブに変更します。
  2. 削除.gradlebuildフォルダ。
  3. [ ファイル] -> [ キャッシュの無効化/再起動...] -> [ 無効化して再起動]をクリックします
  4. 今、それは機能する、幸せなコーディングです。

7

これを行うだけで問題を解決できました:[ファイル]をクリックし、[キャッシュの無効化/再起動]を選択します


6

このGradleの問題を修正する最も簡単な方法は、プロジェクトを再作成してAndroid StudioにGradleを再構成させることです。

[既存のAndroid Studioプロジェクトを開く]を選択して、プロジェクトフォルダーを選択するだけです。

詳細はこちら


4

これは私のために働きました:

buildTypes.debug {
    ext.enableCrashlytics = false
}

buildTypes.release {
    debuggable false
    zipAlignEnabled true
    minifyEnabled false
    signingConfig signingConfigs.release
}

4

この問題は、プロジェクトを環境にインポートし、Gradleプラグインが元の場所とは異なる場所にインストールされている場合に発生します。Gradleのインストール場所を指摘するだけです。

buildTypesやdefaultConfigなどを相互に移動することは完全なソリューションではありません


これで、この問題をようやく解決しました... 1. Android Studioで次の場所に移動します。設定| ファイル| 設定| ビルド、実行、展開| ビルドツール| Gradle 2.維持することをお勧めしますが、これがオフになっていることを確認してください...デフォルトのGradleラッパーを使用(推奨)3.そして、これがチェックされていること...ローカルのGradleディストリビューションを使用してください。4。Gradle Homeがこれは、おそらく後のgradle-nnで... C:/ Program Files / Android / Android Studio1 / gradle / gradle-2.4 Android Studioを再起動したり、プロジェクトを再構築したりする必要があるかもしれませんが、問題は解決しました。
2015年

3

目下の問題は、アップグレード時におそらくインポートしたAndroid Studioの設定が、gradle-2.4またはAndroid Studio 1.5が期待する他のバージョンをまだ指していたことです。

この問題を解決するには、設定を開いて、ビルド、実行、デプロイメント]> [ビルドツール]> [Gradle、ローカルのGradleディストリビューションのホームパスを変更する、デフォルトのGradleラッパーを選択します。

プロジェクトを適用して再同期します。


2

私も同じ問題を抱えていました。私は新しいプロジェクトを開始し、それが機能したので、build.gradleファイルをコピーしました。私の場合、唯一の違いはcompileOptionsセクションがないことでした。私はそれをプロジェクトから削除し、gradleを同期し、compileOptionsセクションを再挿入してから、gradleを再び同期しました。


2

Android Studioで、[ファイル]-> [設定]に移動します。次に、[ビルド、実行、デプロイメント]-> [ビルドツール]-> [Gradle]を選択し、[デフォルトのGradleラッパーを使用する(推奨)]を選択します。

プロジェクトを再構築します。


2

私の場合、私のbuildTypesセクションは私のproductFlavorsセクションの上にありました。彼らの立場を交換することは警告を取り除きました:

前:

buildTypes {

        debug {
            minifyEnabled false
            shrinkResources false
            ...//etc
        }
 }

 productFlavors {
    demo {
        ...//etc
    }
 }

後:

 productFlavors {
    demo {
        ...//etc
    }
 }    

 buildTypes {

        debug {
            minifyEnabled false
            shrinkResources false
            ...//etc
        }
 }

私のandroidセクションの上部にある次の設定でAndroid Studio 2.1.2を使用しています。

android {
    compileSdkVersion 24
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.xyz.abc"
        minSdkVersion 14
        targetSdkVersion 24
        //..etc

1

Android Studioを更新した後、私は以前この警告を受けていました。

Gradleのバージョンも2.6から2.8に更新されたため、[設定]> [ビルドツール]> [Gradle]に移動すると、ローカルGradleパスが無効であることがわかりました。

新しいパスを修正し、gradleを再同期して警告を削除しました。

別の方法はを使用することgradlewrapperです。


0

gradle-wrapper.propertiesでdistributionUrl = https://services.gradle.org/distributions/gradle-2.1-bin.zipをgradle-2.1-all.zipに変更すると、問題が解決しました。


0

編集:これは最終的にこの問題を解決した方法です...

  1. Android Studioで次の場所に移動します。

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

  2. 保持することをお勧めしますが、これがオフになっていることを確認してください...

    デフォルトのGradleラッパーを使用する(推奨)

  3. そして、これはチェックされています...

    ローカルのGradleディストリビューションを使用する

  4. そしてGradle Homeはこれに設定されており、おそらく後でgradle-nnが...

    C:/ Program Files / Android / Android Studio1 / gradle / gradle-2.4

Android Studioの再起動、プロジェクトの再ビルドなどが必要になる場合がありますが、問題は解決しました。

編集の終わり。

私はこれを投稿して、この問題を初めて知っている他の人にそれを無視するようにアドバイスしています。プロジェクトは関係なく完全に実行されます。これはビルドシステムのバグであり、近いうちに修正される予定です。私はコメントを投稿してここで投票しましたが、ここでもアクティブなトピックです...

https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby=&sort=&id=76719

失敗した後、次の3つのスレッドの提案を試した後、プロジェクト全体をゼロから作り直しました。新しいAndroid Studioプロジェクトを開始し、ビルドシステムによって生成されたファイルを無視して、元のライブラリとメインファイルをすべてプロジェクトにコピーし、プロジェクトを再構築しました。「 '(groovy.lang.Closure)'に適用できません」という警告以外のすべてが問題なく表示され、警告が表示されました。それから私は何かを見落とさなかったことを確認するためだけにこれらの提案をもう一度やりました。

1 buildTypesはgroovy.lang.Closureに適用できません に内の設定に移動し、[Gradle wrapperを使用する]を選択します。AndroidStudioで次を選択します:File \ Settings \ Build、Execution、Deployment \ Build tools \ Gradle Mark:Use default gradleラッパー(デフォルト)これにより、ビルドファイルのすべての「(groovy.lang.Closure」に適用できない)警告が削除されました。

2 'dependencies'は '(groovy.lang.Closure)'に適用できません ファイルを開いて編集してください:yourproject / gradle / wrapper / gradle-wrapper.propertie。以下の画像のようにコンテンツを編集して保存します。このフォルダーを削除します:yourproject / .gradle。[プロジェクトをGradleファイルと同期]をクリックすると、準備が整います。

3 https://github.com/DrKLO/Telegram/issues/870

私の構成は:Android Studio 1.3、compileSdkバージョン22、buildToolsバージョン "22.0.1"



0

削除するために私がしなければならなかったすべて

productFlavors {
}

から

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

そして警告は消えた。

最終的な見た目はこんな感じでした

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

0

buildToolsVersionからの変更

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2" 
.. 
}

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1" 
.. 
}

私のために働いた。

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