今天在新开一个android工程的时候,出现如下错误:

ERROR: Android Gradle plugin 3.4.2 must not be applied to project '/Users/xxx/Documents/code/sync_helper/android/sync_helper/app' since version 3.4.2 was already applied to this project

翻译为:Android Gradle plugin 3.4.2 不能应用在工程xx上,因为3.4.2版本已经先于Android Gradle plugin 3.4.2被应用在这个工程上。

猜测就是:类似的编译流程被重复应用到某个module上。果然查了代码后发现(一般主要就是gradle脚本)在app module这个类上有如下标注:

apply plugin: 'com.android.application'
apply plugin: 'com.android.library'
apply plugin: 'com.jakewharton.butterknife'

一般module不是被标注为application就是标注为library,即同一个module只能标注为一个功能,要么是app,要么是library,所以删除apply plugin: 'com.android.library'后编译正常。

笔者通过搜索后看到一个帖子,也印证了笔者的猜想,帖子链接:https://stackoverflow.com/questions/48245522/android-gradle-plugin-3-0-1-must-not-be-applied-to-project/48246174