我的孩子们,今天有点忙,但是我已经躺在床上了,我有能力能够在我们在Android开发中长期以来的主题上写一些台词:迁移构建文件。 。毕业于Kotlin。
最近,在Google文档中,已通知Kotlin脚本(KTS)将是默认情况下的语言,现在以依赖关系同步,并且从以下版本的Android Studio中,此过程将在新应用中默认情况下。 ,因此这个小教程可以将一个小型的“机动项目”迁移到KTS。
KTS?
kts是Kotlin脚本的Acrosem,在Groovy和Kotlin之间的语言迁移中,并不意味着我们将改变Android上图书馆库的导入数量,这将继续与毕业有关。对于新的,Gradle是应用程序的构造工具和与各种编程语言兼容的例程自动化;这是由Java建造的,当Android Kit Kat到达(或更早)时,它是Anti -SubSubstitute。
KT文件和KTS文件之间存在几个差异,其中之一是KT文件由Kotlin的编译器解释,而Kotlin的脚本支持的KTS则不需要以前的编译(您不需要以前的编译(您是javascript吗?)在这种情况下,这是毕业生将如何考虑它而无需以前进行编译。
有很多吗?
1.更改设置。
第一个是更改文件,添加 .kts 扩展到文件,并具有以下行:
include ':app'
在KTS中,您必须将其更改为以下内容:
include("app")
您不必在此文件中做更多的事情,即使您想尝试它,也可以同步单位。现在,重要的是不要使用单个引号('),因为Kotlin会将其解释为字符并标记您的错误。始终尝试在字符链中使用引号(“),以使您没有问题。
2.更改构建。
现在,也这样做以更改build.graleraãz中的文件名,然后更改以下内容:
如果您分配了版本变量(在Ext节点中)执行以下操作。更改以下内容:
buildscript {
ext.androidGradleVersion = "8.0.1"
ext.androidKotlinPlugin = "1.8.20"
}
为此:
buildscript {
val androidGradlePlugin by extra("8.0.1")
val androidKotlinPlugin by extra("1.8.20")
}
我们没有完成。此外
plugins {
id "com.android.application:$androidGradleVersion"
id "com.android.library:$androidGradleVersion"
id "org.jetbrains.kotlin.android:$androidKotlinPlugin"
}
到这个
plugins {
id("com.android.application") version "${extra["androidGradlePlugin"]}" apply false
id("com.android.library") version "${extra["androidGradlePlugin"]}" apply false
id("org.jetbrains.kotlin.android") version "${extra["androidKotlinPlugin"]}" apply false
}
,我们将准备好此文件,现在是时候搬到文件(或文件)build。
3.更改构建。
在这种情况下,我们将更改 app 之一,在这种情况下,如果您有更多的薄荷,则必须对其余部分进行相同的操作。与其他2相同,通过在末尾添加KTS扩展名来告诉文件名。然后更改以下内容:
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
为此:
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
也在Android的定义的一部分中,添加所有定义的符号(=)的符号,也就是说,而不是:
android {
namespace 'mx.dev1.deadpool'
compileSdk 33
defaultConfig {
applicationId "mx.dev1.deadpool"
minSdk 24
targetSdk 33
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
这是什么:
android {
namespace = "mx.dev1.foo"
compileSdk = 33
defaultConfig {
applicationId = "mx.dev1.foo"
minSdk = 24
targetSdk = 33
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles (
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}
最后,它包含同一时间的实现名称,而不是这样:
dependencies {
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3'
implementation 'androidx.navigation:navigation-ui-ktx:2.5.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
这是:
dependencies {
implementation("androidx.core:core-ktx:1.8.0")
implementation("androidx.appcompat:appcompat:1.4.1")
implementation("com.google.android.material:material:1.5.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.3")
implementation("androidx.navigation:navigation-fragment-ktx:2.5.3")
implementation("androidx.navigation:navigation-ui-ktx:2.5.3")
implementation("androidx.legacy:legacy-support-v4:1.0.0")
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.6.1")
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.3")
androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")
}
(最佳实践:到目前为止,请留下“硬编码”单元的版本,但始终将它们放在附加变量中,在这种情况下为步骤2的附加功能。)
现在,一旦完成,请同步您的项目。
这样,您将使您的项目更新以与KTS一起使用并享受其好处,因此您可以保持更新的申请。
我希望本教程为您服务,并与最多的乐队堆肥,以便他们可以看到更多的内容,这些内容将带入这个小博客。
快乐编码!