??? kotlin在android項(xiàng)目中闯冷,不光可以代替java文件進(jìn)行邏輯上的編碼撞牢,在項(xiàng)目構(gòu)建中摆马,也可以在build.gradle中使用:grdle kotlin scripts
????首先需要將gradle的版本升級(jí)到4.10或者更高性穿,確保androidStudio是3.0以上
? ? 我們先更改最外層的settings.gradle文件,需要先重命名成settings.gradle.kts
之后將
include':app'
改成
include (":app")
之后是build.gradle文件愕鼓,先更改最外層工程的build钙态,還是先重命名文件,改為build.gradle.kts
????需要更改的有兩處:
classpath"com.android.tools.build:gradle:4.0.1"
和
task clean(type: Delete){
? ? delete rootProject.buildDir
}
具體更改思路:
classpath菇晃,maven函數(shù)都改成
classpath("xxx")驯绎,maven("xxx")即
classpath("com.android.tools.build:gradle:4.0.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.10")
如果使用了maven{},需要將配置的url換成
maven{url = uri("https://xxxxxxxxx")}
task谋旦,稍微麻煩一點(diǎn),需要改成tasks.register()
tasks.register("clean", Delete::class.java){
? ? delete(rootProject.buildDir)
}
最后是app里的build.gradle屈尼,還是重命名成build.gradle.kts
先看plugin
applyplugin:'com.android.application'
apply plugin:'kotlin-android'
apply plugin:'kotlin-android-extensions'
更改成
plugins{
? ? id("com.android.application")
id("kotlin-android")
id("kotlin-android-extensions")
}
由于內(nèi)置了kotlin()函數(shù)册着,甚至可以更簡(jiǎn)寫成
plugins{
? ? id("com.android.application")
kotlin("android")
kotlin("android.extensions")
}
之后是android域下的
compileSdkVersion 30
defaultConfig{
? ? applicationId"com.chip.kts"
? ? minSdkVersion 23
? ? targetSdkVersion 30
? ? versionCode1
? ? versionName"1.0"
? ? testInstrumentationRunner"androidx.test.runner.AndroidJUnitRunner"
}
更改成
compileSdkVersion(30)
defaultConfig{
? ? applicationId? ="com.chip.kts"
? ? minSdkVersion(23)
targetSdkVersion(30)
versionCode? =1
? ? versionName ="1.0"
? ? testInstrumentationRunner ="androidx.test.runner.AndroidJUnitRunner"
}
基本上都替換成了kotlin風(fēng)格的賦值和函數(shù)
buildTypes相關(guān):
buildTypes {
? ? release{
? ? ? ? minifyEnabledfalse
? ? ? ? proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
? ? }
}
替換成
buildTypes {
? ? getByName("release"){
? ? ? ? isMinifyEnabled =false
? ? ? ? proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"),
????????"proguard-rules.pro")
}
}
debug類似
productFlavors相關(guān)直接替換成:
productFlavors{
? ? create("product"){
? ? ? ? setDimension("enviroment")? ? }
}
dependencies相關(guān)麻煩一點(diǎn):
dependencies{
? ? implementation fileTree(dir:"libs",include: ["*.jar"])
implementation'androidx.appcompat:appcompat:1.2.0'
}
更改成:
dependencies{
? ? implementation(fileTree(mapOf("dir" to"libs","include" to listOf("*.jar"))))
implementation("androidx.appcompat:appcompat:1.2.0")
}
總結(jié)下來
文件名改成kts
'?'替換成"?"
新增“()”或者使用“=”賦值