: 기본적으로 Empty Compose Activity 를 생성한 상태에서 모듈 app 의 build.gradle 파일을
build.gradle.kts 파일로 변경시 수정사항을 정리해 봤습니다.
kts 파일과 gradle 파일이 같이 있어도 빌드에는 문제가 없습니다.
목차
▶ module: app 의 build.gradle 이름을 build.gradle.kts 로 변경후 Sync now 클릭합니다.
아래와 같은 에러가 발생합니다.
\app\build.gradle.kts:2:8: Unexpected tokens (use ';' to separate expressions on the same line)
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
▶ id 부분을 아래처럼 변경후 Sync now 또는 Try Again 클릭
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
▶ 에러내용은 같고 위치만 변경 됩니다.
namespace 'com.example.test_app'
to
namespace ="com.example.test_app"
▶ 8번라인
compileSdk 33
==>
compileSdk = 33
▶ defaultConfig
defaultConfig {
applicationId "com.example.test_app"
minSdk 24
targetSdk 33
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary true
}
}
==>
defaultConfig {
applicationId ="com.example.test_app"
minSdk = 24
targetSdk = 33
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
▶ buildTypes
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
==>
buildTypes {
getByname("release") {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
▶ compileOptions 수정
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
==>
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
▶ kotlinOptions 수정
kotlinOptions {
jvmTarget = '1.8'
}
==>
kotlinOptions {
jvmTarget = "1.8"
}
or
kotlinOptions {
val options = this as org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
options.jvmTarget = "1.8"
}
▶ buildFeatures 수정
buildFeatures {
compose true
}
==>
buildFeatures {
compose = true
}
▶ composeOptions 수정
composeOptions {
kotlinCompilerExtensionVersion '1.2.0'
}
==>
composeOptions {
kotlinCompilerExtensionVersion = "1.2.0"
}
▶ dependencies 수정
dependencies {
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
implementation 'androidx.activity:activity-compose:1.3.1'
implementation "androidx.compose.ui:ui:$compose_ui_version"
implementation "androidx.compose.ui:ui-tooling-preview:$compose_ui_version"
implementation 'androidx.compose.material:material:1.2.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_ui_version"
debugImplementation "androidx.compose.ui:ui-tooling:$compose_ui_version"
debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_ui_version"
}
==>
dependencies {
implementation("androidx.core:core-ktx:1.7.0")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.3.1")
implementation("androidx.activity:activity-compose:1.3.1")
implementation("androidx.compose.ui:ui:$compose_ui_version")
implementation("androidx.compose.ui:ui-tooling-preview:$compose_ui_version")
implementation("androidx.compose.material:material:1.2.0")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_ui_version")
debugImplementation("androidx.compose.ui:ui-tooling:$compose_ui_version")
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_ui_version")
}
▶ packagingOptions
packagingOptions {
resources {
excludes += '/META-INF/{AL2.0,LGPL2.1}'
}
}
==>
packagingOptions {
resources.excludes.add("/META-INF/{AL2.0,LGPL2.1}")
}
▶ Unresolved reference: compose_ui_version
dependencies{
// 임시로 변수를 사용해 봤습니다.
val compose_ui_version = "1.2.0"
~~ 중략 ~~
}
< 기타 >
▶ 참고 사이트
https://developer.android.com/studio/build/migrate-to-kts?hl=ko
간단히 build.gradle 파일을 build.gradle.kts 파일 변경후 빌드를 해봤습니다.
참고하세요.
반응형
'Android_app' 카테고리의 다른 글
[Android App] Build Warning: Call requires permissions .... (2) | 2023.04.03 |
---|---|
[Android app] bindService() 분석 (0) | 2023.04.03 |
[JETPACK Compose] Row() 함수 (0) | 2022.11.22 |
[JETPACK Compose] Column() 함수 내부 인자 테스트 (0) | 2022.11.21 |
[JetPack Compose] Text() 함수 인자 분석 (0) | 2022.11.17 |