开发笔记-Complie关键字过时警告问题

问题描述

之前构建Android项目时,经常出现以下WARNING:

WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html

但我检查了APP项目以及所有的Module,都没有发现compile关键字,用全局搜索(command + shift + f)也没有查到,所以应该是某个远程依赖或插件中使用了compile关键字,但如何定位是哪一个呢?

通过IDESync后的提示如下:

Sync后的Warning提示


问题分析和解决

IDE给的提示太简略,只能通过Gradle命令和Logging options来打印详细的构建信息来定位问题。Logging级别从简略到详细依次为-q-w-i-d。IDE默认应该是使用-q的,可以逐级打印信息,也可以直接使用-d级别日志打印信息。

在项目根目录下,执行命令

./gradlew assembleDebug -d > gradle.log

其中-d是为了打印构建的Debug级别的信息,非常详细。由于信息非常多,命令行界面不能一屏完全显示,故放入名为gradle.log的文件中。

最后生成的文件有13M多,5万多行。通过搜索关键字"WARNING",定位信息如下:

...
16:03:26.459 [DEBUG] [org.gradle.internal.progress.DefaultBuildOperationExecutor] Build operation 'Apply plugin com.sensorsdata.analytics.android to project ':app'' started
16:03:26.459 [WARN] [org.gradle.api.Project] WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
...

警告信息出现在"Build operation Apply plugin com.sensorsdata.analytics.android to project…"语句下,那很可能就是Gradle在应用这个插件的时候报的错。

插件是神策统计的,我的版本是1.0.2,查看官网给的Mavne库,查看最新版本,android-gradle-plugin2/目录下,最高版本是2.0.2

更新插件版本,重新构建,警告消失了,问题解决了。

提示:文章首发我的个人博客简书

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,595评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,480评论 2 59
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,461评论 19 139
  • 说明 本文主要介绍和Gradle关系密切、相对不容易理解的配置,偏重概念介绍。部分内容是Android特有的(例如...
    jzj1993阅读 15,897评论 1 62
  • “既有岁月使之得到的,也有岁月使之失却的” 01 如果我们的语言是威士忌,那该省去多少麻烦。 一饮而尽,眼神笃定,...
    沐森读书阅读 3,567评论 0 0