升级到gradle 3.3和android build tools 2.3.0时收到生成错误

升级到gradle 3.3和android build tools 2.3.0时收到生成错误,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我刚刚更新了我的构建文件 从2.14.1渐变到3.3 Android插件从2.2.3升级到2.3.0 我收到以下错误。似乎是第三方插件的问题。有人能解释一下吗?我在变更日志中找不到与此变更相关的任何内容 配置项目“:API”时出现问题 未能通知项目评估侦听器 SDK中不再包含“android”命令。有参考资料吗 应将其删除(例如,通过第三方插件) 引发错误的生成文件如下所示 apply plugin: 'android-sdk-manager' apply plugin: 'com.androi

我刚刚更新了我的构建文件

从2.14.1渐变到3.3 Android插件从2.2.3升级到2.3.0

我收到以下错误。似乎是第三方插件的问题。有人能解释一下吗?我在变更日志中找不到与此变更相关的任何内容

配置项目“:API”时出现问题

未能通知项目评估侦听器

SDK中不再包含“android”命令。有参考资料吗 应将其删除(例如,通过第三方插件)

引发错误的生成文件如下所示

apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.library'
apply plugin: 'android-apt'

android {
  compileSdkVersion Integer.parseInt(ANDROID_SDK_VERSION)
  buildToolsVersion ANDROID_BUILD_TOOLS_VERSION

  // Legacy apache network stack
  useLibrary 'org.apache.http.legacy'

  defaultConfig {
    minSdkVersion Integer.parseInt(ANDROID_MIN_SDK_VERSION)
    targetSdkVersion Integer.parseInt(ANDROID_SDK_VERSION)
    consumerProguardFiles 'proguard-rules.pro'
  }

  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
  }

  packagingOptions {
    exclude 'LICENSE.txt'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE'
  }

  lintOptions {
    abortOnError false
  }
}

...

android apt
已被弃用,根据:

从Android Gradle插件版本2.2开始,以前由Android apt提供的所有功能现在都可以在Android插件中使用

您可以删除android apt,并按照迁移指南获得等效功能

同样地,根据:

此插件已弃用,不再开发。工具和依赖项使用Android Gradle插件2.2.0版或更新版本


因此,它也可以被删除。

想总结一下我们升级所需的步骤:

  • 升级至gradle 3.3和android构建工具2.3.0

    -classpath 'com.android.tools.build:gradle:2.2.3'
    +classpath 'com.android.tools.build:gradle:2.3.0'
    

    这些应该由Android Studio在升级时自动完成

  • 按照@ian的建议删除
    android apt
    sdk管理器插件

    -classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    

    这些插件已弃用,在较新版本的gradle中不再需要

  • 在app/build.gradle文件中更改生成工具版本号:

    -  buildToolsVersion "23.0.3"
    +  buildToolsVersion '25.0.0'
    
  • 在gradle文件中搜索所有
    apt
    ,并替换为
    annotationProcessor
    。例如,我们正在使用AutoValue和Parceler,我们必须执行以下操作:

    -  apt "com.ryanharter.auto.value:auto-value-gson:$autoValueGsonVersion"
    +  annotationProcessor "com.ryanharter.auto.value:auto-value-gson:$autoValueGsonVersion"
    

  • 最后,清洁和重建也是很重要的

  • -  buildToolsVersion "23.0.3"
    +  buildToolsVersion '25.0.0'
    
    -  apt "com.ryanharter.auto.value:auto-value-gson:$autoValueGsonVersion"
    +  annotationProcessor "com.ryanharter.auto.value:auto-value-gson:$autoValueGsonVersion"
    
    -  apt "org.parceler:parceler:$parcelerVersion"
    +  annotationProcessor "org.parceler:parceler:$parcelerVersion"