【我的Android进阶之旅】解决错误:No enum constant com.android.build.gradle.OptionalCompilationStep.FULL_APK

今天在分支编译代码并允许之后,接着同步主干代码之后,再继续点击【Run】按钮允许程序的时候报错了,错误描述日志如下所示:

一、错误描述

Error:(1, 1) A problem occurred evaluating project ':watch'.
> Failed to apply plugin [id 'com.android.application']
   > No enum constant com.android.build.gradle.OptionalCompilationStep.FULL_APK

图1、错误截图

二、错误分析

原来是我分支开发的时候原来是使用的Android Gradle plugin 版本为2.1.0, Gradle版本为2.10,正常运行,如下所示:

图2、Android Gradle plugin 版本为2.1.0

图3、Gradle版本为2.10

后来在点击【Sysc】按钮,再同步编译的时候,Android Studio 提示我Android Gradle plugin 版本到2.2.3和Gradle版本到2.14.1,这样就支持【Instant Run】功能。

To take advantage of all the latest features (such as Instant Run), improvements and security fixes, we strongly recommend that you update the Android Gradle plugin to version 2.2.3 and Gradle to version 2.14.1. You can learn more about this version of the plugin from the release notes.

图4、提示升级Android Gradle plugin 版本和Gradle版本

好吧,既然提示我升级,那我就升级吧,升级之后的截图如下所示:

图5、Android Gradle plugin 版本为2.2.3

图6、Gradle版本为2.14.1

ok,也成功运行。然后一段时间后,我打算同步主干代码到我的分支,这个时候把build.gradle文件和gradle-wrapper.properties一起同步下来了。

图7、build.gradle文件对比

图8、gradle-wrapper.properties文件对比

同步之后,我又把Android Gradle plugin 版本还原为 2.1.0 ,Gradle版本还原为2.10,这个时候我直接点击【Run】按钮运行的时候,就爆了如图1所示的错误,因为此时的【Run】按钮运行的功能包含【Instant Run】功能,但是Android Gradle plugin 版本为 2.1.0不支持该功能。

图9、即将报错

图10、报错

作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:
http://blog.csdn.net/ouyang_peng/article/details/53812865

这里写图片描述

三、错误解决

点击【Sync】按钮,会弹出如图4提示升级Android Gradle plugin 版本和Gradle版本的对话框

1、如果不想用Android Gradle plugin 版本为2.2.3的功能的话,即保持和服务器的Gradle配置一样的话,点击【Remind me later】按钮之后,会重新编译,编译完成后如图2所示,然后直接运行即可。

2、如果想用Android Gradle plugin 版本为2.2.3的功能的话,即想用【Instant Run】功能的话,点击【Update】按钮之后,会重新编译,编译完成后如图5所示,然后直接运行即可。

总之就是【Instant Run】功能在Android Gradle plugin 版本为2.1.0不支持,要使用的话请升级。如果来回切换Android Gradle plugin版本的话,不要直接点击【Run】按钮运行,先【Sync】重新编译程序之后再运行。

作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:
http://blog.csdn.net/ouyang_peng/article/details/53812865

这里写图片描述

你可能感兴趣的:(【我的Android进阶之旅】解决错误:No enum constant com.android.build.gradle.OptionalCompilationStep.FULL_APK)