Gradle5.0+已经支持了Kotlin,但碍于Android Studio目前适配并不是很好,所以并不建议开发使用,至于为什么,在文章末尾也给出了具体原因。
为什么要使用Kotlin改造?
Gradle采用groovy采用开发语言,是一种动态的dsl语言,缺点就是写脚本时如果出现问题,我们无法实时的得知,只能通过print进行得知,而且无法跳转,并且不支持自动补全。
我们先建一个普通的Android项目,然后改造如下,那怎么改造呢?
改造很简单,在你的gradle后面加上kts即可,然后as会自动识别,接着再修改一堆报错,这个过程很麻烦,目前Android Studio支持并不是很好
app的gradle
plugins { id("com.android.application") id("kotlin-android") id("kotlin-android-extensions") } android { compileSdkVersion(29) buildToolsVersion("29.0.2") defaultConfig { applicationId = "com.android.daggertest" minSdkVersion(15) targetSdkVersion(29) versionCode = 1 versionName = "1.0" } buildTypes { getByName("release") { isMinifyEnabled = true proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") } } dependencies { "implementation"(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar")))) "implementation"("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61") "implementation"("androidx.core:core-ktx:1.1.0") "implementation"("androidx.constraintlayout:constraintlayout:1.1.3") } }
项目的Gradle配置
buildscript { val kotlinVersion="1.3.61" repositories { google() jcenter() } dependencies { classpath("com.android.tools.build:gradle:3.5.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() } }
model配置
include("app")
这样改造后就ok了,不过需要注意的是,目前Android Studio对Kotlin-Gradle支持的并不是很好,所以如果你新建一个model,就会再次新创建gradle配置文件,这样你就得再次手动配置,很麻烦,所以目前Kotlin-Gradle尝鲜即可。