#AndroidStudio升级后gradle配置出现的问题
(可以 ctrl+F 搜索 (需改动) 可以快速定位到要改动的位置)
##项目的build.gradle里面有改变
buildscript {
repositories {
google() //(需改动)AS3.0以上这里要配置
jcenter()
}
dependencies {
//C:\Program Files\Android\Android Studio\gradle\m2repository\com\android\tools\build\gradle
//C:\Program Files\Android\Android Studio 你自己本机的Android Studio路径(需改动)
classpath 'com.android.tools.build:gradle:3.1.2'
}
}
allprojects {
repositories {
google() //(需改动)AS3.0以上这里要配置
jcenter()
maven { url "https://maven.google.com" }
maven {
url 'https://dl.bintray.com/oschinaapp/maven/'
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
ext { //这个给module里的build.gradle配置的常量
compileSdkVersion = 26
buildToolsVersion = "26.1.0"
applicationId = "cn.cn.oschinadome"
minSdkVersion = 19
targetSdkVersion = 24
versionCode = 288
versionName = "v2.8.8(1708301525)"
supportVersion = '25.1.0'
}
##项目下的gradle文件配置
####project(项目目录下)\gradle\wrapper\gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
#目录:例如 C:\Users\MACHENIKE\.gradle\wrapper\dists 这个在你用户目录下的.gradle\wrapper\dists看有没有
#3.5以上的gradle版本,gradle-4.4-all是我目录下的
#也可以直接删除gradle文件,直接使用在线的gradle
module下的build.gradle文件需要改动
apply plugin: 'com.android.application'
android {
compileSdkVersion rootProject.ext.compileSdkVersion //在项目中的build.gradle ext{}里面
// buildToolsVersion rootProject.ext.buildToolsVersion //(需改动)在AS3.0以上不需要这个配置了
defaultConfig {
applicationId rootProject.ext.applicationId
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode rootProject.ext.versionCode
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
versionName rootProject.ext.versionName
// jackOptions.enabled = true //(需改动) 如果你有这个需注释掉
}
// rename the apk with the version name
// applicationVariants.all { variant -> //(需改动)AS3.0之后这个是只读,不能这样修改apk的名字,需要注释掉
// variant.outputs.each { output ->
// output.outputFile = new File(
// output.outputFile.parent + "/${variant.buildType.name}",
// "dome-osc-android-${variant.versionName}-${variant.buildType.name}.apk".toLowerCase())
// }
// }
applicationVariants.all { variant ->
variant.outputs.all { output -> //以前的each改为all
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def fileName = "dev_测试_v${defaultConfig.versionName}_${defaultConfig.versionCode}_${releaseTime()}.apk"
outputFileName = fileName //对输出文件名直接赋值,不用new File
}
}
}
//signing files settings
signingConfigs {
debug {
storeFile ""
storePassword ""
keyAlias ""
keyPassword ""
}
release {
storeFile ""
storePassword ""
keyAlias ""
keyPassword ""
}
}
sourceSets { //jni进入项目
main {
jniLibs.srcDirs = ['libs']
}
}
// 移除lint检查的error
lintOptions {
abortOnError false
}
//build type setting
buildTypes {
debug {
zipAlignEnabled false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
release {
minifyEnabled true //混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
zipAlignEnabled true //zip算法压缩
signingConfig signingConfigs.release
}
}
// productFlavors { //(需改动)(如果有的话)添加flavorDimensions "default" dimension "default" 这两个字段
// oschina {
// manifestPlaceholders = [UMENG_CHANNEL: "oschina"]
// }
// }
//或者另一种改动请查看(https://blog.csdn.net/small_technical/article/details/72782671) 改动的 start
flavorDimensions "default"
productFlavors {
oschina {
dimension "default"
manifestPlaceholders = [UMENG_CHANNEL: "oschina"]
}
}
//改动的 end
}
dependencies {
compile project(':open') //open项目的引用
//(需改动)这里的所有 compile 变为 implementation或者api
//api(如果open里引用里另一个A项目,implementation的话不能使用A项目里的接口,api的话就可以使用A项目的接口)
//Ctrl+R 快捷键 按键把 (compile ) 替换所有为 (implementation ) (区分大小写)
//例如(改动后的) implementation "com.android.support:design:$rootProject.ext.supportVersion"
compile "com.android.support:design:$rootProject.ext.supportVersion"
compile fileTree(include: ['*.jar'], dir: 'libs')
//(需改动)这两个也要替换 这个为替换前的
// androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
// exclude group: 'com.android.support', module: 'support-annotations'
// }) //android测试框架
// testCompile 'junit:junit:4.12' //测试框架
//替换后的为
testImplementation 'junit:junit:4.12' //测试框架
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}