as最近更新了3.4,根据使用as这些年的经验,每次更新除了新功能,总附带些莫名其妙的问题。所以看到升级弹窗,我是拒绝的。

但谷歌总能把新功能写的exciting,于是手抖点了update。接着下载、更新、 构建、一气呵---------那个warning是什么鬼:

‘API 'variantOutput.getPackageApplication()' is obsolete and has been replaced with 'variant.getPackageApplicationProvider()'.

字面意思是使用了过时api,初步定位到打包apk时自定义apk名字那段代码。于是百度谷歌一番,大部分析也都是针对这个方向

的讨论,有些小伙伴分析的十分细致(例如这篇文章)。可惜按照分析里的各种尝试,对我的项目并没有起作用,索性删除那段

代码,虽然问题依旧,但起码证明问题不在这里。

一筹莫展之际,尝试打开另一个练手demo项目。很好,没有warning,对比一下两个项目各自app/build.gradle,大部分配置都相同,除了

报错的项目添加了

apply plugin: 'com.getkeepsafe.dexcount'

dependencies {

classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2'

}

虽然第一感觉不太可能,但排除了其他选项,这个目前最可疑,于是屏蔽代之,build project -> make project,warning消失。然后打开dexcount

的github主页,在release中看到最新版是0.8.6,本地更新后,warning消失。至此问题解决。所以如果遇到这个warning并且第一种方案无效时,可以

从导入的第三方项目入手排查。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐