Gradle3.0.0 新旧项目适配记录一下
Posted 心琼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle3.0.0 新旧项目适配记录一下相关的知识,希望对你有一定的参考价值。
更新Gradle版本
android插件3.0.0需要Gradle版本4.1
或更高版本。如果您使用Android Studio 3.0或更高版本打开现有项目,请按照提示自动将现有项目更新为兼容版本的Gradle。
要手动更新Gradle,请将URL编辑gradle-wrapper.properties
为以下内容:
distributionUrl=\https\://services.gradle.org/distributions/gradle-4.1-all.zip
应用插件
手动修改项目级别build.gradle文件
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
}
buildToolsVersion
Android Plugin For Gradle 3.0.0 默认自动添加插件所需要用到的最小版本的编译工具。所以,我们不需要再手动在 build.gradle 添加一行 buildToolsVersion 属性的代码。对于旧的项目,可以去掉这行配置,比如:
android {
compileSdkVersion 26
// buildToolsVersion "25.0.2"
...
}
声明味道维度
defaultConfig {
......
flavorDimensions "xinqiong"
......
}
each() 和 outputFile()
Plugin 3.0.0 版本移除了一些用于编译配置的 API,其中比较常见的就是 each() 和 outputFile(),两个常用于修改输出 Apk 文件名和路径的方法。(深坑出现)
applicationVariants.all { variant ->
variant.outputs.all { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def fileName = outputFile.name.replace(".apk", "-${defaultConfig.versionName}" + "-${buildTime()}.apk")
if (variant.buildType.name == "release") {
variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + "/" + project.getName() + "/build/outputs/apk/release")
outputFileName = fileName
} else if (variant.buildType.name == "debug") {
variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + "/" + project.getName() + "/build/outputs/apk/debug")
outputFileName = fileName
} else if (variant.buildType.name == "debugRelease") {
variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + "/" + project.getName() + "/build/outputs/apk/debugRelease")
outputFileName = fileName
}
}
}
}
使用新的依赖配置
以上是关于Gradle3.0.0 新旧项目适配记录一下的主要内容,如果未能解决你的问题,请参考以下文章
FlutterFlutter 全面屏适配 ( 需要适配的情况 | Android 设置最大宽高比 | 使用 SafeArea 进行全面屏适配 | 使用 MediaQuery 进行全面屏适配 )(代码片