插件太旧,请更新到最新版本,或设置 ANDROID _ DAILY _ OVERRIDE 环境变量为

今天我刚从 Android SDK 中导入了一个示例应用程序作为我的项目(分析)的一个模块,当我试图同步它时,突然出现了这个级别错误: 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()
}
}
127755 次浏览

就像 CommonsWare 建议的那样,确保你拥有的是 Gradle 2.2.1 + (最新版本是2.3)。

确保你升级了你的 Android 工作室,但这里有一些需要升级的“插件” 更新:

最佳 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

级别: https://gradle.org/downloads

总是检查 Android SDK 管理器的最新版本:

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

顺便说一句,我在完全不相关的情况下也出现了同样的错误——在我的系统时钟年设置改变之后(即2015-> 2016) ; 把时钟改回正确的时钟解决了这个问题。

注1: 我发布这个主要是因为我有完全相同的错误消息,但工作的解决方案被证明是不同的,只是更新插件的版本(由 Jared Burrows发布)。

注二: 使用

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

可以使插件版本默认为最新的一个。请记住,您的构建可能会在 API 更改时中断(正是由于这个原因,Android API 文档不鼓励您这样做) ,所以只有在您不断更新版本的情况下,才需要自担风险。

我使用的是 Android 数据绑定,我今天遇到了同样的问题。

要解决这个问题,改变:

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

致:

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

1.0-rc0现在仍然可以在 Jcenter上找到,我不知道为什么它不能被使用。

环境变量 ANDROID _ DAILY _ OVERRIDE 为相同值示例-b9471da4f76e0d1a88d41a072922b1e0c257745c

这对我有用。

只是为了防止有人在这方面遇到困难,在我的案例中,我使用的是 Gradle 1.4 beta 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/

解决方案(更新日期: 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
}

X.X.X-lastVersiongradle : 例如: < strong > 2.1.0

X.X.X-lastVersionGServices : 例如: 3.0(支持 Firebase Analytics)

注意: 如果你使用谷歌服务插件必须是相同的版本(如果有)

警告!-> 2.20-α如果你不使用 java JDK 8u91和 NetBeans 8.1,它会抛出不支持的 Major. small 版本52.0

这个问题是由于 Gradle 版本的更改引起的,因为您的应用程序使用了旧版本的 Gradle,所以需要更新到新版本。

这些更改需要在 build.gradle 文件中完成,看看这个链接 http://www.feelzdroid.com/2015/11/android-plugin-too-old-update-recent-version.html。了解如何更新分级,并提供了详细的步骤。那里。

谢谢

您应该升级 gradle 的版本,例如: com.android.build.gradle 1.3.0

这个问题发生时,版本的梯度改变。

用类路径替换类路径,如下所示。这是一个解决方案,它的工作,但它可能不是一个好的解决方案。

Classspath‘ com.android.tools.build: gradle: +’类路径‘ com.android.tools.build:

最好的方法是用最新版本的 gradle 替换 +

我终于有办法解决这个问题了 1. 检查你的上层建筑的路径 Classspath‘ com.android.tools.build: gradle: 2.1.0-alpha3’类路径‘ com.android.tools.build: gradle: 2.1.0-alpha3’ 那就去 Https://jcenter.bintray.com/com/android/tools/build/gradle/ 找到一个比你的更新的版本,这里我选择2.1.0-beta 3 将类路径更改为以下,然后启动构建。 Classspath‘ com.android.tools.build: gradle: 2.1.0-beta3’类路径‘ com.android.tools.build: gradle: 2.1.0-beta3’

删除’-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天“退休年龄”。

点击这里查看最新版本的 Gradle 插件:

[ ! [下载] 1] 2

你应该在 应用程序设置的依赖性中改变这一点

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

}

}

在过去的几个月里,我使用了 Android Studio 的“预览”版本。我试图切换回“稳定”版本的软件更新,但这是不够的,我得到了这个著名的错误,你谈论。

卸载我的 Android Studio 2.2. 预览和安装最新的 稳定 Android Studio (2.1)为我修复:)

你可以在这里查看最新的渐变插件版本: Https://bintray.com/android/android-tools/com.android.tools.build.gradle

因此,从今天起,你应该使用:

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

因此。

在应用程序级别的分级文件中寻找稳定的版本或分级 对我来说是的
Classspath‘ com.android.tools.build: gradle: 2.2.0-alpha3’类路径‘ com.android.tools.build: gradle: 2.2.0-alpha3’

我用

Class 路径‘ com.android.tools.build: gradle: 2.1.2’

如果您希望继续使用最新的开发版本,那么每次您的版本过期太久时,这个问题都可能再次出现。

我一直在更新最新的开发版本列表,以及我对这个类似问题的回答的稳定版本,这样我就可以在每次收到新的警告时修复它:

ANDROID Studio 2.0-插件太旧,请更新到最新版本,或设置 ANDROID _ DAILY _ OVERRIDE

输出来自 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

如果有人想使用插件,不想做每天谷歌石..。

需要:

  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);
    

EXAMPLE APP IN JAVA (sources + JAR):

  1. FOR GENERATE ADO - for ALL OS'es WITH JVM
  2. SET ENV for LINUX

https://github.com/c3ph3us/ado

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

example bash function to export env and start idea / or studio:

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

这是机器人告诉你升级到最新版本的方式。 你可以做两件事

  1. 升级到新版本的梯级。在升级之后,您可能会面临新的错误(例如,如果您升级到4.1,您将不得不适应新的语法-“编译”不再有效,请使用“实现”)。
  2. 将 ANDROID _ DAILY _ OVERRIDE 变量更新为给定的值。转到 Computer-> Properties-> Advanced System Settings-> Environment Variables,并创建一个新变量或现有 ANDROID _ DAILY _ OVERRIDE 的更新值。顾名思义,这个值只在一天内有效,第二天您将再次不得不重写该变量。