[Android, Kotlin] layout 작성할 때 자동완성 안되는 문제

[문제 발생]

 

어느 순간부터 layout의 자동완성 기능이 안되기 시작했다.

layout에서 뷰를 그릴 때 string , color , dimens 등 다양한 value를 사용하려면 자동완성을 통한 코딩이 꼭 필요하다.

철자가 틀려도 xml에서는 오류가 잘 캐치되지 않기 때문에 자동완성 기능이 없으면 빌드 할 때 오류가 발생한다.

빠른 개발 속도를 위해서라도 문제 해결이 필요했다.

 

[해결 방법 / 시도]

 

1. cache 삭제 해보기

 

안드로이드 내부에 cache가 쌓여서 자동완성 기능이 동작하지 않을 수도 있다.

안드로이드 스튜디오 상단에 file - settings 메뉴에 들어간다.

이후에 Editor - Code Completion에서 Match case의 체크를 해제 해준다.

안드로이드 스튜디오를 종료한다.

 

setting

 

내 PC - Users  - 사용자 이름 - .andorid  에 접속하면 cache 폴더가 있다.

이 폴더를 삭제하고 안드로이드를 다시 시작한다.

 

내pc\사용자\사용자이름\.android 폴더

 

cache 폴더를 삭제했지만 여전히 자동완성 기능이 되지 않았다.

 

2. andoird sdk 버전 낮추기

 

Android sdk 는 애플리케이션 개발에 사용되는 개발 도구 세트이다.

필수 라이브러리 , 디버거, 애뮬레이터 등과 다양한 API 관련 문서를 제공한다.

혹시나 sdk 관련 문제인지 확인하기 위해서 sdk의 버전을 낮춰보았다.

app : build.gradle에 들어간다.

sdk 버전이 33으로 되어있어서 32로 낮춰보았다.

 

compileSdk 32

defaultConfig {
    applicationId "com.example.todolistjinuemong"
    minSdk 21
    targetSdk 32
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

 

Sync Now를 진행한다.

 

 

이제 자동완성 기능이 동작한다.

 

 

[또 다른 문제]

 

이렇게 문제를 해결하면 다른 문제가 발생한다.

bulid 진행 시 컴파일 에러가 발생한다.

이유는 아마도 라이브러리 중에 sdk 33 버전을 원하는 라이브러리가 있는 것 같다.

방법으로는 sdk 33 을 원하는 라이브러리의 버전을 낮춰주는 방법밖에 없는 것 같다.

아니면 컴파일 할 때마다 sdk 버전을 변경해주어야 한다..