關於AndroidStudio升級到3.0以上的問題總結
阿新 • • 發佈:2019-01-05
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())
// }
// }
//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'
}