记录老项目升级到3.1之后各种坑

坑一 修改输出apk的文件名导致的异常

outputFile.png

这个坑因为3.1 之后 更改打包命名的方法改变了...
填坑
variant.outputs.each each 里面没有 outputFileName 会报错 要改成 all
outputFile 改成outputFileName
补充下 outputFile.parent 这里不让用了 报错说不能用绝对路径 只能去掉 然后继续运行

坑二 buildTools 最低版本异常

继续运行之后又报错
The specified Android SDK Build Tools version (25.0.0) is ignored, as it is below the minimum supported version (27.0.3) for Android Gradle Plugin 3.1.2. Android SDK Build Tools 27.0.3 will be used.
升级之后要求把 buildToolsVersion 统一为27.0.3 这里所有项目全都要改成这个版本 不然会报错

坑三 Lambda插件冲突
One of the plugins you are using supports Java 8 language features. To try the support built into the Android plugin, remove the following from your build.gradle: apply plugin: 'me.tatarka.retrolambda'
这问题是因为之前studio 为了支持lambda 引入的 3.1 之后已自带他要求你必须去掉...小坑 一跃而过

坑四 compile废弃了

Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'
要把项目所有的 compile 替换成 'implementation' 或 'api',这里implementation是私有引用别的项目引用不到 api和以前compile 是一样的 遇到找不到包就是这个问题。

坑五 flavor配置异常

All flavors must now belong to a named flavor dimension. Learn more at
这是因为之前项目这么引用的
xxxDebugCompile project(path: ':map', configuration: 'mapboxDebug') lib 里面有不同配置
现在升级之后 defaultConfig 里面配置一个 flavorDimensions 上面写上你在productFlavors 里面所有版本
flavorDimensions "baidu","mapbox"
然后productFlavors 不同版本写
mapbox { dimension "mapbox" } baidu { dimension "baidu" }
引入lib的话直接
api project(':map')

坑六 appt2报错问题

继续运行之后叒报错 看了下错误
AAPT2 error: check logs for details 网上查了下说直接因为3.0启用了aapt2...禁用就好了 我感觉这完全就是头疼医头 之前项目写错了单词 Manifest有不存在的Activity .9不合格就会报这个错 神奇的事 之前写错了单词 那项目怎么正常运行的???

至此 折腾了一上午 项目总算跑起来了...

你可能感兴趣的:(记录老项目升级到3.1之后各种坑)