[Android-studio] buildTypes ne peut pas être appliqué à groovy.lang.Closure


Answers

J'ai eu le même problème. Déplacer les buildTypes comme la dernière entrée dans la section android a fonctionné pour moi.

android {
    ...
    buildTypes {
    }
}
Question

Je reçois cet avertissement dans mon fichier gradle de projet:

Attention: (16, 5) 'buildTypes' ne peut pas être appliqué à '(groovy.lang.Closure <com.android.build.gradle.internal.dsl.BuildType>)'

Ma section buildTypes est:

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

J'utilise actuellement Android Studio 1.1.0, compileSdkVersion 22, buildToolsVersion 22.0.0 et targetSdkVersion 22. J'ai essayé de revenir à 21 mais je recevais toujours l'avertissement.

Quelles sont les causes de cet avertissement et comment est-il réparé?




EDIT: Comment j'ai finalement résolu ce problème ...

  1. Naviguez dans Android Studio pour:

    Fichier | Paramètres | Construire, Exécuter, Déployer | Outils de construction | Gradle

  2. Assurez-vous que cela est décoché, malgré qu'il est recommandé de garder ...

    Utiliser l'enrubanneuse par défaut (recommandé)

  3. et que celui-ci est vérifié ...

    Utiliser la distribution locale des gradients

  4. et que Gradle Home est réglé sur ceci, avec éventuellement un gradle-nn plus tard ...

    C: / Programmes / Android / Android Studio1 / gradle / gradle-2.4

Vous devrez peut-être redémarrer Android Studio, reconstruire le projet, etc, mais le problème est résolu.

Fin de l'édition.

Je poste ceci pour conseiller n'importe qui d'autre nouveau à ce problème pour l'ignorer. Le projet fonctionne parfaitement indépendamment. C'est tout simplement un bug dans le système de construction, nous espérons être corrigé bientôt. J'ai posté un commentaire et voté ici où c'est à nouveau un sujet actif ...

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

Après avoir essayé, sans succès, les suggestions dans les trois threads suivants, j'ai re-fait le projet entier à partir de zéro. J'ai démarré un nouveau projet Android Studio, j'ai copié toutes les librairies et les fichiers principaux d'origine en ignorant tous les fichiers générés par le système de compilation et reconstruit le projet. Tout allait bien sauf que tous ces avertissements "ne peuvent pas être appliqués" ("groovy.lang.closure") réapparaissaient avec une vengence. Puis je suis allé à travers ces suggestions à nouveau juste pour être certain que je n'avais pas oublié quelque chose.

1 buildTypes ne peut pas être appliqué à groovy.lang.Closure allez dans les paramètres dans Android Studio et sélectionnez "Utiliser Gradle wrapper": Dans Android Studio sélectionnez: Fichier \ Paramètres \ Build, Exécution, Déploiement \ Build tools \ Gradle Mark: Utiliser le dégradé par défaut wrapper (par défaut) Cela a supprimé tous les avertissements "ne peut pas être appliqué aux" (groovy.lang.Closure ') dans les fichiers de construction.

2 'dependencies' ne peut pas être appliqué à '(groovy.lang.Closure)' Ouvrez et modifiez le fichier: yourproject / gradle / wrapper / gradle-wrapper.propertie. Modifier le contenu comme ci-dessous l'image, puis enregistrez. Supprimez ce dossier: yourproject / .gradle. Cliquez sur le projet de synchronisation avec des fichiers gradle, alors vous êtes prêt à partir.

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

Ma configuration est: Android Studio 1.3, compileSdk Version 22, buildTools Version "22.0.1"




Pour résoudre ce problème, dans votre Android Studio allez dans Fichier -> Paramètres . Dans les paramètres, choisissez Build, Execution, Deployment -> Build Tools -> Gradle et sélectionnez l' option "Use default scaling wrapper (recommandé)" .

Après la reconstruction de votre build.gradle sera totalement bien.




J'ai réussi à résoudre mon problème en faisant simplement ceci: Cliquez sur «Fichier» puis sélectionnez «Invalider les caches / redémarrer




Cela a fonctionné pour moi:

buildTypes.debug {
    ext.enableCrashlytics = false
}

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



J'avais l'habitude d'avoir cet avertissement, après avoir mis à jour Android Studio.

Quand je suis allé à Paramètres >> Build Tools >> Gradle, j'ai trouvé que le chemin Gradle local n'était pas valide, puisque la version Gradle a été mise à jour de 2.6 à 2.8.

Correction du nouveau chemin et re-sync gradle supprimé l'avertissement.

Une autre façon consiste à utiliser gradlewrapper .




Dans votre Android Studio, allez dans Fichier -> Paramètres. Ensuite, choisissez Build, Execution, Deployment -> Build Tools -> Gradle et sélectionnez "Utiliser le wrapper gradle par défaut (recommandé)".

Reconstruire le projet.




Tout ce que je devais faire pour enlever

productFlavors {
}

De

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

et l'avertissement est parti.

Le look final était comme ça

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



Le problème est que les paramètres d'Android Studio que vous avez probablement importés lors de la mise à niveau indiquaient toujours Gradle-2.4 ou d'autres versions attendues par Android Studio 1.5.

Pour résoudre ce problème, vous devez ouvrir les paramètres et aller à Construire, Exécution, Déploiement> Outils de construction> Gradle et modifier le chemin d'accès de la distribution de votre gradle local ou sélectionner le wrapper Gradle par défaut.

Appliquez et resynchronisez votre projet.