プラグインが古すぎます。最新バージョンに更新するか、ANDROID_DAILY_OVERRIDE環境変数を設定してください


176

今日、私はプロジェクト(アナリティクス)のモジュールとしてAndroid SDKからサンプルアプリをインポートしましたが、同期しようとすると突然、このGradleエラーが発生しました。 Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE envrinment variable to...

これは私のアプリgradleファイルです:

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')
}

原因の可能性について何か考えがありますか(私はプラグインバージョン1.1.0-rc1とgradleバージョン2.2およびAndroid Studioバージョン1.1.0 を使用しています)?

編集:

これは私のトップ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にはGradle 2.2.1が必要です。Gradle for Androidプラグイン1.1が利用可能になったため、はもう必要ありません-rc1
CommonsWare、2015年

まず最初にあなたの即時の答えに感謝します、私はプロジェクトの設定を変更しようとし、私は結果をここに投稿します。再度、感謝します!:-)
マリオノラート

1
出来た!クラスパスから「-rc1」の部分を削除しました。これで同期しました。再度、感謝します!PS私はstackoverflowを使うのがあまり得意ではありません。どうすればあなたの回答に賛成投票したり、正しい回答としてマークしたりできますか?
マリオノラート

1
いつでもここで最新の
gradle

Android Studioは失礼です。何かがGUIから自動生成されたものである場合、プログラマーの支援を決して必要としてはなりません。
カメレオン

回答:


132

CommonsWareが提案したように、Gradle 2.2.1以降(最新は2.3)を使用していることを確認してください。

Android Studioを必ずアップグレードしてください。ただし、更新が必要な「プラグイン」は次のとおりです。

トップbuild.gradle

変化する:

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

に:

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

アプリbuild.gradle

変化する:

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

に:

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

Android SDK Managerで常に最新のリビジョンを確認してください。

Androidビルドツールプラグイン:http : //tools.android.com/tech-docs/new-build-system

Androidサポートライブラリ:http : //developer.android.com/tools/support-library/features.html

最新のプラグインリリースを表示するには、Bintray Jcenterページを直接表示します:https ://bintray.com/android/android-tools/com.android.tools.build.gradle/view 。


わかりました、Commonswareの回答を読んだ後、クラスパスの-rc1の部分を削除しました。インデックスを作成した後、正常に動作するように見えます(ここで、スタックオーバーフローであなたを邪魔しないように、ほぼ2時間を失いました:-))、今、私はあなたが提案したようにプラグインを更新しようとします。:-) 再度、感謝します。
マリオノラート

1
@MarioNorato問題ありません。常に最新バージョンを入手できる場所へのリンクを掲載します。また、Android SDKマネージャーを更新し続けると、Android Studioは新しいバージョンを警告するはずです。
Jared Burrows、2015年

同じ問題がありました。プラグインを1.4。+から1.3。+に移動するとうまくいきました。また、gradle 2.8を使用していて、常に最新バージョンをダウンロードするスクリプトを使用しています。どうやら価格が
高いよう

18
https://jcenter.bintray.com/com/android/tools/build/gradle/Gradleの最新バージョンが何であるかを理解するために行く必要がありました。最上位のgradleファイルをそのURLから入手可能な最新バージョンで更新すると、問題が解決しました。あなたの解決策はこれを見つけるのに十分な情報を私に与えませんでした!
exhuma

1
この場所にリンクする価値があります(IMHO、GradleのWebサイトよりも優れています)-最新のGradleリリースバージョンがリストされています:developer.android.com/tools/revisions/gradle-plugin.html
Booger

46

解決策(更新日:2016年5月24日): build.gradle(プロジェクト)を変更

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:例:2.1.0

XXX-lastVersionGServices:例:3.0.0(Firebase Analyticsをサポート)

注:google-servicesプラグインを使用している場合、同じバージョンである必要があります(ある場合)

警告!!-> 2.2.0-alpha は、Java JDK 8u91およびNetBeans 8.1を使用しない場合、サポートされていないmajor.minorバージョン52.0をスローします


31

余談ですが、システムクロックの年の設定が変更された後(つまり、2015-> 2016)、まったく関係のない状況で同じエラーが発生しています。時計を正しい時計に戻すと、問題は解決しました。

注1:主にこれと同じエラーメッセージが表示されたため、これを投稿していますが、実際のソリューションは、プラグインのバージョンを更新するだけではないことが証明されています(によって投稿されたとおりJared Burrows)。

注2:使用

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

プラグインのバージョンをデフォルトの最新のものにすることができます。ビルドがAPIの変更に影響する可能性があることに注意してください(そのため、Android APIドキュメントでは推奨されていません)。これは、常にバージョンを常に更新している場合にのみ、自己責任で使用してください。


4
Intellij / Android Studioは、使用しているバージョンを知っている必要があるため、これを行わないように警告します。
Jared Burrows

1
@JaredBurrows私が使用しているバージョンがわかる-最新バージョン。自分を特定のリリースにバインドする特別な理由はなく、新しいリリースが行われるたびにバージョンを手動で更新することは、+バージョンIMO を使用するよりも賢明なオプションではありません。プログラミングを助けるために警告が発せられ、もしそれらがハードで曲げられないルールを参照しているなら、そもそも警告ではなくエラーだったでしょう。それでも、あなたは完全に有効な主張をしました、私はその情報を私の投稿に含めました。

1
「+」演算子を使用すると、予測できないビルドが生成されるため、常に回避する必要があります。これは危険な答えです。
agrosner、2015年

@agrosner コメントを見る上記の。確かに、それは最終的なリリースや深刻な製品コードでは避けなければなりませんが、小規模なアプリケーションの継続的な開発でそれを使用することには実際の欠点はありません。それをより明確にするために言い換えました。余談ですが、その情報は実際の問題に対する可能な解決策として提供されたものであり、ベストプラクティスとして提供されたものではありません。回答はここではありません。回答は時計を確認することです。

さて...私は今日この問題を抱えています、そしてそれは本当に2016年です...これが関連している可能性はありますか?また、時計を変更せずにこれを修正する方法はありますか?現在、Androidとビルド環境で足を濡らしています。それはすべて私にとってまだ新しいものであり、私はこのエラーで
少し

29

誰かがこれに苦労している場合に備えて、私の場合はGradle 1.4ベータ1を使用しており、それを維持する必要があります。したがって、Android Studioを機能させるには、ターミナルに移動してこれを実行します。

launchctl setenv ANDROID_DAILY_OVERRIDE <your-value-on-error-message>

Android Studioを再起動すると、プロジェクトが再度ビルドされます。

ここで更新2への称賛:https : //emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/



9

クラスパスをこのようなあいまいなものに置き換えます。その解決策とそれは機能しますが、それは良い解決策ではないかもしれません。

クラスパス 'com.android.tools.build:gradle:+'

最良の方法は、+を最新バージョンのgradleに置き換えることです


まあ、本当にアルファ版またはベータ版も使いたい場合のみ。
JacksOnF1re 2016年

ここで注意をお読みください:developer.android.com/studio/releases/gradle-plugin.html「注意: 'com.android.tools.build:gradle:2.+'などのバージョン番号では動的依存関係を使用しないでくださいこの機能を使用すると、予期しないバージョンの更新が発生し、バージョンの違いを解決することが困難になる場合があります。」
ウェストン

6

ここでGradleプラグインの最新バージョンを確認してください:

ダウンロード

アプリ設定の依存関係でこれを変更する必要があります

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

}

}


2

この問題は、Gradleのバージョンが変更されたために発生します。アプリケーションは古いバージョンのGradleを使用しているため、新しいバージョンに更新する必要があります。

この変更はbuild.gradleファイルで行う必要があります。このリンクhttp://www.feelzdroid.com/2015/11/android-plugin-too-old-update-recent-version.htmlを参照してください。Gradleの更新方法と詳細な手順について説明します。そこ。

サンズ


1

Androidデータバインディングを使用していますが、今日も同じ問題があります。

それを解決するには、変更します:

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

に:

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

1.0-rc0は今でもjcenterで見つかりますが、なぜそれを使用できなかったのかわかりません。


1

私は最終的にこれを解決する方法を手に入れました1.トップのbuild.gradleであなたのcalsspathを確認してください 。 bintray.com/com/android/tools/build/gradle/ あなたのリリースより新しいリリースを見つけます。ここでは、2.1.0-beta3を選択し、クラスパスを以下に変更してから、ビルドを起動します。クラスパス 'com.android.tools.build:gradle:2.1.0-beta3'


1

最新の開発バージョンを引き続き使用する場合は、バージョンが古くなるたびにこの問題が再発する可能性があります。

新しい警告が出るたびに修正できるように、この同様の質問への私の回答には、最新の開発バージョンと安定バージョンの最新リストを保持しています。

Android Studio 2.0-プラグインが古すぎます。最新バージョンに更新するか、ANDROID_DAILY_OVERRIDEを設定してください


0

環境変数ANDROID_DAILY_OVERRIDEを同じ値に設定例-b9471da4f76e0d1a88d41a072922b1e0c257745c

これは私にとってはうまくいきます。


そして、この変数はどこにありますか?
MobileEvangelist、2015

ANDROID_DAILY_OVERRIDEをどこに設定する必要がありますか?
MiguelAngel_LV 2015年

1
@ MiguelAngel_LV、AndriodNewbie、googleオペレーティングシステムの環境変数をエクスポートする方法。これはOSの機能です
Yaroslav Mytkalyk

0

「-rcX」部分を削除するソリューションは機能します。エラーが発生している理由を詳しく説明したいと思います。問題は https://android.googlesource.com/platform/tools/base/+/master/build-system/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.java#230にあります

バージョンがない、または「rc」、「alpha」、または「beta」を含むプラグインには、デフォルトで40日間の「退職年齢」があります。


0

過去数か月間、私はAndroid Studioの「プレビュー」バージョンを使用しました。私はソフトウェアの更新を「安定した」リリースに戻そうとしましたが、それは十分ではなく、あなたが話しているこの有名なエラーが発生しました。

私のAndroid Studio 2.2.previewをアンインストールし、最新の安定した Android Studio(2.1)をインストールすると、修正されました:)


0

私の場合、アプリレベル
のgradle ファイルで安定したバージョンまたはgradleに移動しますそれはクラスパス「com.android.tools.build:gradle:2.2.0-alpha3」でした

私はそれを変えました

クラスパス 'com.android.tools.build:gradle:2.1.2'


0

出力はNonFinalPluginExpiry.javaからのものです

例2.4.0-alpha7

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

誰かがプラグインを使用したいが毎日のgoogle shiを実行したくない場合

どちらかが必要:

  1. プラグインを再コンパイル
  2. マニフェストの「Plugin-Version」を置き換えます
  3. env varを生成して毎日設定する自動化スクリプトを作成する

         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のアプリの例(ソース+ JAR):

  1. GENERATE ADO-JVMを備えたすべてのOS
  2. Linux用のSET ENV

https://github.com/c3ph3us/ado

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

環境をエクスポートしてアイデアを開始するbash関数の例/またはスタジオ:

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

0

これは、gradleを最新バージョンにアップグレードするように指示するAndroidの方法です。あなたは2つのことをすることができます

  1. 新しいバージョンのgradleにアップグレードします。アップグレード後に新しいエラーが発生する可能性があります(たとえば、4.1にアップグレードする場合、新しい構文に適応する必要があります-「コンパイル」は無効になり、「実装」を使用します)。
  2. ANDROID_DAILY_OVERRIDE変数を指定された値に更新します。[コンピューター]-> [プロパティ]-> [システムの詳細設定]-> [環境変数]に移動し、新しい変数を作成するか、既存のANDROID_DAILY_OVERRIDEの値を更新します。名前が示すように、この値は1日のみ有効であり、翌日も変数をオーバーライドする必要があります。

-1

Gradleのバージョンをアップグレードする必要があります。例:com.android.build.gradle 1.3.0

この問題は、gradleのバージョンが変更されたときに発生します。

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