본문 바로가기
프로그래밍/Kotlin

[Kotlin] Android Studio Kotlin 시작하기 (Android Studio 2022.1.1 설치)

by 채연2 2023. 1. 28.

 

Contents

     

     

    Android Studio에서 Kotlin 프로젝트 생성하기

    최근 kotlin에 관심이 생겨서 혼자 천천히 배워보려고 마음을 먹었다. 실행 환경이 중요하니 제일 처음으로 안드로이트 스튜디오에서 코틀린 프로젝트를 생성해 보았다. 생성하면서 생긴 버전 문제와 그로 인한 android studio 재설치, 오류 대처 등 내가 겪었던 과정을 정리해보려 한다.

     

    기존 Android Studio에서 Kotlin 프로젝트 생성하기

    ▶ [Phone and Tablet] 탭에서 Empty Activity를 선택하여 [Next]

     

    ▶ 각 항목을 적어주고 Language는 [Kotlin]으로, Minimum SDK는 [Andoird 5.0]으로 선택 후 [Finish]

    • Name : 프로젝트 명
    • Package name : 패키지 명 (프로젝트 리소스에 액세스하는 데 사용됨)
      • ex) com.example.projectName
    • Save location : 프로젝트 저장할 로컬 위치
    • Language : 새 프로젝트에서 사용할 언어 (Kotlin or Java) 선택
    • Minimum SDK : 앱에서 지원할 Minimum API level 선택
      • 낮은 API level 선택 - 최신 Android API 사용 불가하지만 대다수 Android 기기에서 앱 실행 가능
      • 높은 API level 선택 - 최신 Android API 사용 가능하지만 일부 Android 기기에서만 앱 실행 가능
    • Use legacy android.support libraries : 기본적으로 AndroidX 라이브러리를 사용하도록 구성된 프로젝트를 Android Support 라이브러리로 사용하려면 선택 (기존 Android Support 라이브러리가 더 이상 지원되지 않기에 권장되지 않음)

     

    ※ Minimum SDK 밑에 [Help me choose]를 클릭하면 아래와 같이 API level에 대한 정보를 볼 수 있음

     

    Error 1 : This version of Android Studio cannot open this project...

    This version of Android Studio cannot open this project, please retry with Android Studio 4.0 or newer.

    프로젝트를 생성하고 나니, 다음과 같은 오류 문구가 떴다. 어떻게든 다른 방법으로 해결해보려 했지만 결국 해결책은 최신 Android Studio 버전 설치하는 것이었다.

     

    최신 Android Studio 설치하기 (기존 Android Studio 버전에서 최신 버전으로)

    ▶ Android Studio 사이트에 접속해서 바로 중간에 보이는 [Download Android Studio ..] 클릭

     

    ▶ 다운로드 받은 파일 실행 (현재 Android Studio 프로젝트가 열려있다면 전부 종료하기)

     

    ▶ 이전 Android Studio 버전이 존재한다면 [Uninstall the previous version] 선택 후 설치

     

    ▶ 설치된 Android Studio 실행 후 먼저 생성했던 Kotlin 프로젝트 열면 오류가 없는 것을 확인 후 [Run]

     

    Error 2 : Installed Build Tools revision 33.0.0 is corrupted...

    Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
    > Installed Build Tools revision 33.0.0 is corrupted. Remove and install again using the SDK Manager.

    구글링 결과, Android Build Tools API 31버전부터 누락된 특정 파일들 때문에 발생하는 오류라고 한다. dx.bat파일과 dx.jar파일이 누락돼서 발생되는데 이 파일들은 다른 이름인 d8.dat파일과 d8.jar파일로 존재한다.

     

    해결책① Android Build Tools API 30버전으로 Downgrade 하는 방법② 누락된 dx.bat, dx.jar 파일을 찾아주는 방법 2가지가 존재하지만, ①번 해결책은 회피하는 방법이지 실제 해결책이 아니라고 한다. 나는 ②번 해결책으로 해결했다.

     

        solution : d8.dat, d8.jar 파일 명을 dx.dat, dx.jar 파일 명으로 변경하기

    ▶ 본인 PC에서 Android Studio SDK Path\build-tools\version\lib\ 폴더로 직접 이동하여 d8.jar 파일 명을 dx.jar 파일 명으로 변경

     

     바로 이전 폴더인 Android Studio SDK Path\build-tools\version\ 폴더로 직접 이동하여 d8.dat 파일 명을 dx.dat 파일 명으로 변경

     

    Error 3 : Can't determine type for tag 'macro name ...' ...

    Can't determine type for tag '<macro name="m3_comp_bottom_app_bar_container_color">?attr/colorSurface</macro>'

    Build Tools API 버전 문제를 해결은 했지만 이번엔 다른 문제가 발생했다. 에러 원인은 material components 1.7.0을 사용하기 위한 프로젝트의 최소 요구사항을 만족하지 못해서라고 한다.

     

    해결책은 ① material components 1.6.0으로 Downgrade 하는 방법② material components 1.7.0을 사용하기 위한 프로젝트 최소 요구사항을 만족시키는 방법 2가지가 있다고 한다. 나는 더이상의 개발 환경을 건들이고 싶지 않아 ①번 해결책을 선택했다. 혹시라도 ②번 해결책으로 수정하고 싶은 분들을 위해 최소 요구사항을 아래 정리해 두겠다.

     

    New minimum requirements for your app's project (앱 프로젝트에 대한 새로운 최소 요구사항)

    ☞ Android Gradle Plugin(AGP) version 7.2.0 으로 업데이트
    ☞ Gradle version 7.3.3 으로 업데이트
    ☞ Java 8 (version 1.8) 으로 업데이트
    ☞ Android Studio Chipmunk, version 2021.2.1 으로 업데이트

    Material Components for Android 1.7.0 릴리즈 노트 보러가기

     

        solution : material components 버전 1.7.0에서 1.6.0으로 다운그레이드하기

    build.gradle(app) 파일 dependencies 안의 com.google.android.material:material:1.7.0 ▷ 1.6.0으로 변경 후 [Sync Now]

    dependencies {
        ...
        implementation 'com.google.android.material:material:1.6.0'
        ...
    }

     

    Error 4 : Manifest merger failed: Apps targeting Android 12 .... 

    Execution failed for task ':app:processDebugMainManifest'.
    > Manifest merger failed: Apps targeting Android 12 and higher are required to specify an explicit value for android: exported when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.

    위의 에러는 해결 됐지만 또 다른 에러가 발생했다. 에러 문구를 읽어보니 Manifest 안에서 발생하는 문제로 보인다. 그래서 app\src\main\AndroidManifest.xml 파일로 이동하여 에러가 발생한 코드 위에 커서를 올려보니, activity 태그 안에 exported 속성을 true로 설정해 주면 되는 것 같다.

     

        solution : AndroidManifest.xml 파일 activity 태그에 exported = true 속성 넣어주기
    <manifest ...>
        <application ...>
            <activity ...
                  android:exported="true">
            </activity>
        </application>
    </manifest>

     

    Error 5 : Module was compiled with an incompatible version Kotlin...

    .../core-1.9.0-api.jar!/META-INF/core_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.4.2.

    위 에러는 Kotlin 버전이 맞지 않아서 발생하는 에러이다. 해결책은 현재 Kotlin 버전 확인 후 해당 버전을 적용해 주면 된다.

     

        solution : 현재 Kotlin 버전 확인 후 build.gradle파일에서 Kotlin 버전 변경하기

    ▶ [File] > [Settings] > [Languages & Frameworks] > [Kotlin] 에서 현재 Kotlin 버전 확인

     

    app/build.gradle 파일 buildscript 안에 정의되어 있는 ext.kotlin_version 값을 현재 버전 값으로 변경

    buildscript {
        ext.kotlin_version = "1.7.21"
        
        repositories {
            ...
        }
        dependencies {
            ...
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }

     

    Kotlin 프로젝트 빌드 후 실행하기

    여러 시행착오를 거쳐 결국 Kotlin 프로젝트 빌드 및 실행에 성공했다. 이렇게 정리해보니 마주한 에러가 총 5개라니 새삼 끔찍하다는 생각이 든다. 😂

     

     

    320x100

    '프로그래밍 > Kotlin' 카테고리의 다른 글

    [Kotlin 기초 2] Objects (2)  (6) 2023.02.09
    [Kotlin 기초 2] Objects (1)  (4) 2023.02.09
    [Kotlin 기초 1] 기본 구문 (3)  (4) 2023.02.07
    [Kotlin 기초 1] 기본 구문 (2)  (7) 2023.02.07
    [Kotlin 기초 1] 기본 구문 (1)  (2) 2023.02.03

    댓글