Eklenti çok eski, lütfen daha yeni bir sürüme güncelleyin veya ANDROID_DAILY_OVERRIDE ortam değişkenini


176

Bugün Android SDK'dan örnek bir uygulamayı projemde bir modül olarak içe aktardım (analitik) ve senkronize etmeye çalıştığımda aniden bu gradle hatasını aldım: Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE envrinment variable to...

Bu benim uygulama gradledosyam:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.0"
    defaultConfig {
        applicationId "xxx.xxxxxx.xxxxx"
        versionCode 1
        versionName '1'
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName '1'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }


    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'com.google.android.gms:play-services:6.5.87'
    compile 'com.android.support:recyclerview-v7:21.0.0'
    compile 'com.android.support:cardview-v7:21.0.0'
    compile 'com.facebook.android:facebook-android-sdk:3.21.1'
    testCompile 'junit:junit:4.12'
    compile project(':volley')
}

Sebebi olan herhangi bir fikriniz var mı (1.1.0-rc1 eklenti sürümünü ve gradle2.2 ve Android Studiosürüm 1.1.0 eklentisini kullanıyorum )?

DÜZENLE:

Bu benim tepem build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.0-rc1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

4
Android Studio 1.1.0 için Gradle 2.2.1'e ihtiyacınız var. Gradle for Android eklentisi 1.1 artık kullanılabilir, bu yüzden artık ihtiyacınız yok -rc1.
CommonsWare

Her şeyden önce anında cevap verdiğiniz için teşekkürler, projenin ayarlarını değiştirmeye çalışacağım ve sonuçları buraya göndereceğim. Tekrar teşekkürler! :-)
Mario Norato

1
İşe yaradı! Sınıf yolundan "-rc1" bölümünü sildim. Şimdi senkronize oldu. Tekrar teşekkürler! Not: Stackoverflow kullanımında çok iyi değilim, cevabınızı nasıl yükseltebilirim veya doğru olarak işaretleyebilirim?
Mario Norato

1
her zaman en yeni sürüm sürümünü burada bulabilirsiniz developer.android.com/tools/revisions/gradle-plugin.html
Bharatesh

Android Studio için ne kadar kaba. GUI'den otomatik olarak bir şey oluşturulursa, ASLA programcının yardımına ihtiyaç duymaz.
Bukalemun

Yanıtlar:


132

CommonsWare'in önerdiği gibi, Gradle 2.2.1+ sürümüne sahip olduğunuzdan emin olun (en son sürüm 2.3).

Android Studio'nuzu yükselttiğinizden emin olun, ancak güncellenmesi gereken "eklentiler" şunlardır:

Üst build.gradle:

Değişiklik:

classpath 'com.android.tools.build:gradle:1.1.0-rc1'

Kime:

classpath 'com.android.tools.build:gradle:1.1.3' // latest 1.5.0

Uygulama build.gradle:

Değişiklik:

compile 'com.android.support:recyclerview-v7:21.0.0'
compile 'com.android.support:cardview-v7:21.0.0'

Kime:

compile 'com.android.support:recyclerview-v7:22.0.0' // latest 23.1.1
compile 'com.android.support:cardview-v7:22.0.0' // latest 23.1.1

Gradle: https://gradle.org/downloads

En son düzeltmeler için her zaman Android SDK Yöneticisine bakın:

Android Derleme Araçları Eklentisi: http://tools.android.com/tech-docs/new-build-system

Android Destek Kitaplıkları: http://developer.android.com/tools/support-library/features.html

En son eklenti sürümlerini görüntülemek için doğrudan Bintray Jcenter sayfasını görüntüleyin: https://bintray.com/android/android-tools/com.android.tools.build.gradle/view .


Tamam, Commonsware cevabını okuduktan sonra sadece sınıf yolunun -rc1 bölümünü aldım ve endekslemeden sonra şimdi iyi çalışıyor gibi görünüyor (ah, burada yığın taşması sırasında hiç kimseyi rahatsız etmemek için neredeyse 2 saat kaybettim :-)), şimdi ben Önerdiğiniz gibi eklentiyi güncellemeye çalışacağım. :-) Tekrar teşekkürler.
Mario Norato

1
@MarioNorato Sorun değil, en son sürümü her zaman bulabileceğiniz bağlantıları göndereceğim. Ayrıca, Android SDK yöneticisini güncel tutarsanız Android stüdyosu sizi daha yeni bir sürüm konusunda uyarmalıdır.
Jared Burrows

aynı sorunu vardı. eklentiyi 1.4. + 'dan 1.3. +' ya taşımak hile yaptı. Ayrıca ben 2.8 gradle kullanıyorum ve her zaman en son sürümü indiren bir komut dosyası var, görünüşe göre fiyatı var ...
codeScriber

18
https://jcenter.bintray.com/com/android/tools/build/gradle/Gradle'ın en son versiyonunun ne olduğunu bulmak için gitmem gerekiyordu . En iyi not dosyamı bu URL'deki en son sürümle güncellemek sorunu çözdü. Çözümünüz bana bunu bulabilmek için yeterli bilgi vermedi!
exhuma

1
Bu konuma bağlantı vermeye değer (IMHO, Gradle web sitesinden daha iyi) - listelenen en son Gradle sürümüne sahip: developer.android.com/tools/revisions/gradle-plugin.html
Booger

46

Çözüm (Güncelleme: 24-Mayıs-2016): build.gradle (project) değiştir

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:X.X.X-lastVersionGradle'
    classpath 'com.google.gms:google-services:X.X.X-lastVersionGServices' // If use google-services

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

XXX-lastVersionGradle : Örneğin: 2.1.0

XXX-lastVersionGServices : Örneğin: 3.0.0 ( Firebase Analytics'i destekleyin)

Not: google-services eklentisini kullanıyorsanız aynı sürüm olmalıdır (varsa)

Uyarı!! -> 2.2.0-alfa, java JDK 8u91 ve NetBeans 8.1 kullanmıyorsanız Desteklenmeyen major.minor sürüm 52.0 atar


31

Bir yan not olarak, tamamen ilgili olmayan bir durumda aynı hatayı alıyorum - sistem saat yılı ayarım değiştikten sonra (yani 2015 -> 2016); saati doğru olana geri döndürmek sorunu çözdü.

Not 1: Bunu esas olarak tam olarak aynı hata mesajına sahip olduğum için gönderiyorum, ancak çalışma çözümünün sadece eklentinin sürümünü (gönderdiği gibi Jared Burrows) güncellemekten farklı olduğu kanıtlandı .

Not 2: kullanma

classpath 'com.android.tools.build:gradle:+'

eklenti sürümünü varsayılan sürümden en yenisine dönüştürebilirsiniz. Yapınızın API değişikliklerini bozabileceğini unutmayın (ve bu nedenle Android API dokümanları tarafından önerilmez), bu nedenle yalnızca sürümü sürekli olarak güncellüyorsanız bunu kendi sorumluluğunuzda kullanın.


4
Intellij / Android Studio, hangi sürümü kullandığınızı bilmeniz gerektiği için bunu yapmamanız konusunda sizi uyaracaktır.
Jared Burrows

1
@JaredBurrows Hangi sürümü kullandığımı biliyorum - en yeni sürüm. Kendinizi belirli bir sürüme bağlamak için özel bir neden görmüyorum ve her yeni sürüm yapıldığında sürümü manuel olarak güncellemek, +IMO sürümünü kullanmaktan daha mantıklı bir seçenek değil . Uyarılar, programlamaya yardımcı olmak için yayılır, eğer zor, dayanılmaz kurallara atıfta bulunsaydı, uyarı olmazlardı, ama ilk etapta hatalar olurdu. Yine de, tamamen geçerli bir noktaya değindin, bu bilgiyi yazıma ekledim.

1
'+' operatörünün kullanılması öngörülemeyen yapılar oluşturur ve her zaman kaçınılmalıdır. Bu tehlikeli bir cevap.
agrosner

@agrosner bkz yorumumu mantığı için yukarıda. Doğru, son relaslarda ve ciddi üretim kodunda kaçınılmalıdır, ancak bunu küçük uygulamaların sürekli geliştirilmesinde kullanmanın gerçek bir dezavantajı yoktur. Bunu daha belirgin hale getirmek için yeniden düzenlendi. Bir yan not olarak, bu bilgi en iyi uygulama olarak değil, gerçek soruna olası bir çözüm olarak verildi - ve bu cevap burada değil - cevap saati kontrol etmektir.

Peki ... Bugün bu problemi yaşıyorum ve gerçekten 2016 şimdi ... Bunun bir şansı var mı? Ayrıca, saati değiştirmeden bunu düzeltmenin bir yolu var mı? Şu anda Android ve yapım ortamı ile ayaklarımı ıslatıyorum. Hepsi benim için hala yeni ve bu hatayla kayboldum :(
exhuma



9

Sınıf yolunuzu bunun gibi belirsiz bir şeyle değiştirin. Bu bir çözüm ve işe yarıyor ama iyi bir çözüm olmayabilir.

sınıfyolu 'com.android.tools.build:gradle:+'

En iyi yol, + 'yı en son sürüm sürümüyle değiştirmektir


Sadece alfa veya beta sürümlerini kullanmak istiyorsanız.
JacksOnF1re

Buradaki uyarıyı okuyun: developer.android.com/studio/releases/gradle-plugin.html "Dikkat: Sürüm numaralarında" com.android.tools.build:gradle:2.+ "gibi dinamik bağımlılıklar kullanmamalısınız. Bu özelliği kullanmak beklenmedik sürüm güncellemelerine ve sürüm farklılıklarını çözmede zorluklara neden olabilir. "
weston

6

Gradle Plugin'in en son sürümünü buradan kontrol edin:

İndir

Bunu uygulama ayarlarının bağımlılıklarında değiştirmelisiniz

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:[PLACE VERSION CODE HERE]'

}

}



1

Android Veri Bağlama'yı kullanıyorum ve bugün de aynı sorunu yaşıyorum.

Çözmek için şunu değiştirin:

classpath "com.android.databinding:dataBinder:1.0-rc0"

Kime:

classpath "com.android.databinding:dataBinder:1.0-rc1"

1.0-rc0 hala jcenter'da bulunabiliyor, neden kullanılamadığını bilmiyorum.




0

ANDROID_DAILY_OVERRIDE ortam değişkenini aynı değere ayarlayın Örnek - b9471da4f76e0d1a88d41a072922b1e0c257745c

bu benim için çalışıyor.


Ve bu değişkenin bulunduğu yer ??
MobileEvangelist

ANDROID_DAILY_OVERRIDE'ı nerede ayarlamalıyım?
MiguelAngel_LV

1
@MiguelAngel_LV, AndriodNewbie, google işletim sisteminizde ortam değişkenini nasıl dışa aktarır. Bu bir işletim sistemi özelliği
Yaroslav Mytkalyk


0

Geçtiğimiz aylarda Android Studio'nun "önizleme" sürümünü kullandım. Yazılım güncellemeleri için "kararlı" sürümlere geri dönmeye çalıştım ama yeterli değildi ve bahsettiğiniz bu ünlü hatayı aldım.

Android Studio 2.2'imi kaldırmak. Önizleme ve en son kararlı Android Studio'yu (2.1) yüklemek benim için düzeltti :)


0

Benim durumumda uygulama sürümü gradle dosyasında kararlı sürüm veya
sınıf için git 'com.android.tools.build:gradle:2.2.0-alpha3' sınıfyoluydu

İle değiştirdim

sınıfyolu 'com.android.tools.build:gradle:2.1.2'


0

çıktı NonFinalPluginExpiry.java kaynağından

örnek 2.4.0-alfa7

https://github.com/c3ph3us/android-gradle-plugin-source-codes/blob/master/gradle-2.4.0-alpha7-sources/com/android/build/gradle/internal/NonFinalPluginExpiry.java

Birisi eklenti kullanmak istiyorsa ve günlük google shi yapmak istemiyorsanız ..

ya gerek:

  1. eklentiyi yeniden derle
  2. manifest'te "Plugin-Version" yerine
  3. env var oluşturmak için bir otomasyon komut dosyası oluşturun ve günlük olarak ayarlayın

         MessageDigest crypt = MessageDigest.getInstance("SHA-1");
         crypt.reset();
         crypt.update(String.format(
                         "%1$s:%2$s:%3$s",
                            now.getYear(),
                            now.getMonthValue() -1,
                            now.getDayOfMonth())
                            .getBytes("utf8"));
        String overrideValue = new BigInteger(1, crypt.digest()).toString(16);

JAVA'DA ÖRNEK APP (kaynaklar + JAR):

  1. GENEL ADO İÇİN - JVM'li TÜM OS'ler için
  2. LINUX için ENV SETİ

https://github.com/c3ph3us/ado

https://github.com/c3ph3us/ado/releases

env'yi dışa aktarmak ve idea / veya studio'yı başlatmak için bash işlevine örnek:

// eval export & start idea :) 
function sti() {
    export `java -jar AndroidDailyOverride.jar p`
    idea.sh
}

0

Bu, Android'in en son sürüme yükseltmeyi söylemenin yoludur. İki şey yapabilirsiniz.

  1. Gradle'ın daha yeni sürümüne yükseltin. Yükseltmeden sonra yeni hatalarla karşılaşabilirsiniz (örneğin, 4.1 sürümüne yükseltme yapıyorsanız, yeni sözdizimine uyum sağlamanız gerekir - "derleme" artık geçerli değildir, "uygulama" kullanın).
  2. ANDROID_DAILY_OVERRIDE değişkeninizi verilen değere güncelleyin. Bilgisayar -> Özellikler -> Gelişmiş Sistem Ayarları -> Ortam Değişkenleri'ne gidin ve mevcut ANDROID_DAILY_OVERRIDE için yeni bir değişken veya güncelleme değeri oluşturun. Adından da anlaşılacağı gibi, bu değer yalnızca bir gün için geçerlidir ve ertesi gün değişkeni geçersiz kılmanız gerekir.

-1

Gradle sürümünü yükseltmelisiniz. örneğin: com.android.build.gradle 1.3.0

sınıfın sürümü değiştirildiğinde bu sorun oluşur.

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.