gradle 的版本需要升级4.1+,建议直接用4.3版本
gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
添加 google仓库
gradle plugin 3.0.0+
、support library 27+
开始只放在了google仓库中了,不再jcenter中提供了
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
buildToolsVersion
Android Studio 3.0.0 默认可以不写buildToolsVersion,默认最低可用版本26.0.2
手动修改 buildToolsVersion>=26.0.2
设置了productFlavors的必须设置flavorDimensions
buildType match问题
gradle 依赖的API变更
为了兼容使用gradle 4.3,目前是标记为废弃的,4.3后直接没了
compile -> implementation (for app module)
compile -> api ( for sub module)
provided -> compileOnly
apk-> runtimeOnly
Studio 3.0 minimum
Error:This Gradle plugin requires Studio 3.0 minimum
gradle.properties
android.injected.build.model.only.versioned=3
aapt2问题
AS3默认使用aapt2处理,如果一些项目使用aapt2有问题,那么可以禁用掉,继续使用原有的aapt。
gradle.properties
android.enableAapt2=false
获取manifest文件路径
修改apk名问题
以前的方式是 output.outputFile = xxxx
Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=normalDebug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.
正确的姿势
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
具体参考:
https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html