今天升级androidStudio3.0了,说一下目前遇到的坑
升级后要求用android26编译,会自动下载一堆东西使用的gradletool是3.0.0,gradle运行库版本是4.1,一开始以为墙的关系会卡住不动,但是实际上只是下载速度很慢而已,要么等自动下载要么自己下载文件后解决,可以找相关文章学习。
下面是首先编译提示的不同点,通过搜索后发现,outputs.each变成了all,然后原来的output.outputFile这个字段变成了只读,不能赋值,对应的字段是outputFileName,但是这个字段有个问题,这个字段看名字像是只能修改文件名,但是实际测试中发现可以设置路径,但是目前看不支持绝对路径,也就是说你要把输出文件路径归集到一个指定目录的话可能变得很蛋疼,只能通过../../../xxxx这种方式来转出到上级目录处理,目前还没找到更好的方法。也就是说如果你设置路径是/xxx/xxx/xxx最后得到的apk文件路径会是项目目录/build/output/apk/release/xxx/xxx/xxx/xxx.apk这样的情况。
//gradle4.1
android.applicationVariants.all { variant ->
variant.outputs.all { output ->
if (outputFileName.contains("release")) {
buildDate = new Date().format('yyyyMMddHHmmssSS');
outApkFile = getOutApkFileName(project, output.outputFile.name, VERSION_NAME);
outputFileName = outApkFile.path
}
}
}
//gradle3.3
// android.applicationVariants.all { variant ->
// if (variant.apkVariantData.signed) {
// println "signed"
// }
//
// variant.outputs.each { output ->
//
// def file = output.outputFile
// //release才需要选择路径
// if (file.name.contains("release")) {
// def buildDate = new Date().format('yyyyMMddHHmmssSS');
// outApkFile = output.outputFile = getOutApkFileName(project, output.outputFile.name, VERSION_NAME);
// }
// }
// }
最后就是提一下,编译速度真的非常非常非常快,二次编译更加快,不会像以前一样再次处理同步一大堆东西