buildTypes, groovy.lang dosyasına uygulanamaz.


241

Proje uyarı dosyamda şu uyarıyı alıyorum:

Uyarı: (16, 5) 'buildTypes', '(groovy.lang.Closure <com.android.build.gradle.internal.dsl.BuildType>)' öğesine uygulanamaz

BuildTypes bölümüm:

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

Şu anda Android Studio 1.1.0, compileSdkVersion 22, buildToolsVersion 22.0.0 ve targetSdkVersion 22 kullanıyorum. 21'e kadar yedeklemeyi denedim ama hala uyarı alıyordum.

Bu uyarının nedeni nedir ve nasıl düzeltilir?


Eklenti uyguladınız mı: 'com.android.aplication' veya 'com.android.library'?
Kirill Boyarshinov

@Kirill: com.android.application
Jim Vitek

Yanıtlar:


471

Benim için yukarıdaki çözüm uygulanarak sorun çözülmedi. Bunun yerine Android Studio'daki ayarlara gidip "Gradle wrapper kullan" ı seçmem gerekiyordu:

Android Studio'da şunu seçin: Dosya \ Ayarlar \ Derleme, Yürütme, Dağıtım \ Derleme araçları \ Gradle

(Mac Kullanıcıları: Android Studio \ Tercihler ... \ Derleme, Yürütme, Dağıtım \ Derleme araçları \ Gradle )

İşaret: Varsayılan kepçe sarmalayıcısını kullan (varsayılan)

Bu, yapı dosyalarındaki 'kaldırılamaz' (groovy.lang.Closure ') uyarılarının tümünü kaldırdı.


2
Bu doğru cevap, projeyi Windows'ta açtığımda ve sonra Linux'ta (Dropbox aracılığıyla) sınıf dağılımının yerini değiştirdiğinde oldu, bu yüzden varsayılan sınıflayıcı sarıcısını kullanmak daha iyi.
Rodrigo Direito

1
Aynı sorunu yaşadım. Takım arkadaşım bir windows makinesinde çalışıyor. Güncellemeler getiriliyor bana bu sorunu veriyor
chip

@ Waterbear Bu nedenle orijinal yanıtı düzenledim (bir süre bunun için de aradım: D). Akran değerlendirmesinden sonra mevcut olacak :) Bkz: i.imgur.com/BtCijIW.png
StefMa

Her nasılsa Mac'te 1.3.1 AS, Build -> Clean'de bu ayarı sıfırlar. Geri ayarlamak derlemeyi düzeltir. Teşekkürler!
Den Drobiazko

11
Android Studio ile aptalca bir şey, hedef 22 ve buildToolsVersion 22.0.1 tarafından oluşturulduğunda bana uyarı göstermeye başladı .... Benim için 'Varsayılan gradle wrapper kullan' zaten varsayılan olarak işaretlendi (AS 2.0 Beta) ... i sadece kod bloğumu kes ve aynı yere yapıştırıldı (kod değişikliği yok, yapılandırma değişikliği yok) .... uyarısı kaldırıldı!
Umair

127

Aynı sorunu yaşadım. Android bölümünde son giriş olarak buildTypes taşımak benim için çalıştı.

android {
    ...
    buildTypes {
    }
}

2
Konumunun bir fark yaratması garip ama görünüşe göre öyle.
Jason Crosby

Bu benim için de geçerli. Bunun nasıl çalıştığı hakkında bir fikrin var mı? Teşekkürler.
myNameCoad

4
Bu benim için de işe yaramış gibi görünüyordu, ama sonra bu değişiklikleri çözdüm ve o bloğu aynı yere kopyaladım / yapıştırdım ve uyarı da gitti. Sonra her şeyi geri almaya ve uyarıyı kopyalamak için projeyi kapatıp yeniden açmaya çalıştım, ama gitti. Bence bu tür uyarılardan sadece biri .
elliptic1

Benim için, Peter'ın cevabı ile ilgili bir uyarı dışında neredeyse uyarılar silindi buildTypes. Sonra, bu çözüm sonuncusu için çalıştı!
hata

76

1 "android" bölümünde "buildTypes" i aynı konumda kesin ve yapıştırın

2 Yeniden Senkronizasyon Projesi


16

Bu sorunu çözmek için Android Studio'nuzda Dosya -> Ayarlar'a gidin . Ayarlarda Derleme, Yürütme, Dağıtım -> Derleme Araçları -> Dereceyi seçin ve "Varsayılan kademeli sarmalayıcıyı kullan (önerilir)" seçeneğini belirleyin.

Build.gradle yeniden inşa ettikten sonra tamamen iyi olacak.


1
Bu doğru cevap VEYA uygun gradle konumunu seçebilirsiniz
geçersiz işaretçi

1
Ne kadar farklı @ Peter cevabı.
AndyW

13

Yukarıdaki seçeneklerin hiçbiri işe yaramazsa, aşağıdakileri yapın

  1. Projeyi Project"Proje Gezgini" nde perspektif olarak değiştirin .
  2. Sil .gradleve buildklasörler.
  3. Click File -> Invalidate'yi Önbellekler / Yeniden ... -> Invalidate'yi ve Yeniden
  4. Şimdi çalışıyor, mutlu kodlaması.

7

Sorunumu basitçe yaparak çözmeyi başardım: "Dosya" yı tıklayın ve ardından "Önbellekleri Geçersiz Kıl / Yeniden Başlat" ı seçin


6

Bu Gradle sorunlarını düzeltmenin en kolay yolu, projeyi Android Studio'nun Gradle'ı yeniden yapılandırmasına izin vermek için yeniden oluşturmaktır.

"Mevcut bir Android Studio projesini aç" ı seçin ve proje klasörünüzü seçin.

Daha fazla ayrıntı burada .


4

bu benim için çalıştı:

buildTypes.debug {
    ext.enableCrashlytics = false
}

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

4

Sorun, bir projeyi ortamınıza içe aktardığınızda ve Gradle eklentisi orijinalinde olduğundan farklı bir konuma yüklendiğinde ortaya çıkar. Sadece Gradle kurulumunuzun nerede olduğunu belirtmeniz gerekir.

BuildTypes veya defaultConfig dosyasını veya birbirleri arasındaki her şeyi taşımak tam bir çözüm değildir


Bu nasıl sonunda bu sorunu çözdü ... 1. Android Studio'da gidin: Dosya | Ayarlar | Dosya | Ayarlar | Oluşturma, Yürütme, Dağıtım | Yapı Araçları | Gradle 2. Saklanması tavsiye edilmesine rağmen bunun işaretlenmediğinden emin olun ... Varsayılan Gradle Wrapper'ı kullanın (önerilir) 3. ve bunun işaretli olduğundan ... Yerel gradle dağıtımını kullanın 4. Gradle Home Bu, muhtemelen daha sonra bir çakmak-nn ile ... C: / Program Files / Android / Android Studio1 / gradle / gradle-2.4 Android Studio'yu yeniden başlatmanız, projeyi yeniden inşa etmeniz vb. gerekebilir ama sorun çözüldü.
Mick

3

El altında sorunu olduğunu, Android Studio ayarları sen misin muhtemelen yükseltme sırasında içe hala 2.4 numaralı veya Android Studio 1.5'ten beklenenden başka bazı sürümleri işaret ediyor olmasıdır.

Bu sorunu çözmek için Ayarlar'ı açmalı ve Derleme, Yürütme, Dağıtım> Derleme Araçları> Gradle'a gitmeli ve yerel gradle dağıtımınızın ana yolunu değiştirmeli veya varsayılan gradle sarıcısını seçmelisiniz.

Projenizi uygulayın ve yeniden senkronize edin.


2

Ben de aynı problemi yaşadım. Yeni bir proje başlattım ve işe yaradı, bu yüzden build.gradle dosyasını kopyaladım. Benim durumumda tek fark compileOptions bölümünün olmamasıydı. Projemden kaldırdım, gradle'ı senkronize ettim, compileOptions bölümünü tekrar ekledim ve gradle'ı tekrar senkronize ettim.


2

Android Studio'nuzda Dosya -> Ayarlar'a gidin. Ardından Derleme, Yürütme, Dağıtım -> Derleme Araçları -> Dereceyi seçin ve "Varsayılan kademeli sarmalayıcıyı kullan (önerilir)" seçeneğini seçin.

Projeyi yeniden oluştur.


2

Benim durumumda buildTypesbölümüm benimproductFlavors . Pozisyonlarını değiştirmek uyarıyı ortadan kaldırdı:

ÖNCE:

buildTypes {

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

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

SONRA:

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

 buildTypes {

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

Android Studio 2.1.2'yi androidbölümümün üstünde aşağıdaki yapılandırma ile kullanıyorum :

android {
    compileSdkVersion 24
    buildToolsVersion "23.0.3"

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

1

Android Studio'yu güncelledikten sonra bu uyarıyı alırdım.

Ben gittiğimde >> Gradle >> Ayarlar Yapı Araçları gradle versiyon 2,6 ila 2,8 yanı güncellendi beri, Yerel Gradle yolu geçersiz olduğunu gördük.

Yeni yol düzeltildi ve tekrar senkronize edilen seviye uyarısı kaldırıldı.

Başka bir yol kullanmaktır gradlewrapper.


0

DağıtımUrl = https: //services.gradle.org/distributions/gradle-2.1-bin.zip'i gradle-wrapper.properties içindeki gradle-2.1-all.zip olarak değiştirmek benim için sorunu çözdü.


0

EDIT: Bu nihayet bu sorunu çözdü nasıl ...

  1. Android Studio'da şuraya gidin:

    Dosya | Ayarlar | Oluşturma, Yürütme, Dağıtım | Yapı Araçları | Gradle

  2. Tutulması tavsiye edilmesine rağmen, bunun işaretlenmediğinden emin olun ...

    Varsayılan Kepçe Sarmalayıcısını Kullan (önerilir)

  3. ve bunun kontrol edildiğini ...

    Yerel sınıflandırma dağıtımı kullanma

  4. ve Gradle Home buna ayarlandı, muhtemelen daha sonra bir gradle-nn ...

    C: / Program Dosyaları / Android / Android Studio1 / gradle / gradle-2.4

Android Studio'yu yeniden başlatmanız, projeyi yeniden oluşturmanız vb. Gerekebilir, ancak sorun çözülmüştür.

EDIT sonu.

Yoksaymak için bu soruna yeni gelen herkese tavsiye etmek için bunu gönderiyorum. Proje ne olursa olsun mükemmel çalışıyor. Bu, yapı sisteminde bir hatadır, umarım yakında düzeltilecektir. Bir yorum gönderdim ve burada yine aktif bir konu olduğu için oy verdim ...

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

Başarısız bir şekilde, aşağıdaki üç konudaki önerileri denedikten sonra, tüm projeyi sıfırdan yeniden yaptım. Yeni bir Android Studio projesi başlattım, tüm orijinal kütüphaneleri ve ana dosyaları, yapı sistemi tarafından oluşturulan dosyaları yok sayarak projeyi yeniden oluşturdum. Her şey yolundaydı, ancak tüm bunlar "uygulanamaz" (groovy.lang.Closure) '"uyarıları büyük bir şevkle tekrar ortaya çıktı. Sonra yine sadece bir şey göz ardı değil emin olmak için bu önerileri gitti.

1 buildTypes groovy.lang.Closure uygulamasına uygulanamaz Android Studio içindeki ayarlara gidin ve "Gradle wrapper kullan" ı seçin: Android Studio'da şunu seçin: File \ Settings \ Build, Execution, Deployment \ Build tools \ Gradle Mark: Varsayılan gradle kullan wrapper (default) Bu kaldırılan tüm 'yapı dosyalarındaki' (groovy.lang.Closure ') uyarılarına uygulanamaz.

'(Groovy.lang.Closure)' Dosyaya 2 'bağımlılık' uygulanamaz : Dosyayı aç ve düzenle: projeniz / gradle / wrapper / gradle-wrapper.propertie. İçeriği aşağıdaki resimdeki gibi düzenleyin ve kaydedin. Bu klasörü silin: projeniz / .gradle. Projeyi derecelendirme dosyalarıyla senkronize et'i tıklayın, ardından başlayabilirsiniz.

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

Yapılandırmam: Android Studio 1.3, compileSdk Sürüm 22, buildTools Sürüm "22.0.1"



0

Kaldırmak için tek yapmam gereken

productFlavors {
}

itibaren

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

ve uyarı gitti.

Son bakış şöyleydi

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

0

Değişen buildToolsVersiondan

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2" 
.. 
}

için

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1" 
.. 
}

benim için çalıştı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.