본문 바로가기

소프트웨어/안드로이드

[Android Studio] 안드로이드 스튜디오 여러 버전을 한 PC에 설치

 

 

TLDR;

 

Windows 10 기준으로 작성한 내용입니다. 참고해주세요.

 

Butterknife Deprecated

소식이 좀 늦은 감이 있지만 Buffter Knife가 공식적으로 deprecated되었습니다. View binding을 사용하라고 합니다.

기존 프로젝트에서도 Butter Knife가 잘 동작은 하지만 새로운 프로젝트에 Butter Knife를 차마 사용하기가 좀 그렇습니다. 최신 Android App 개발 패러다임에 맞는 다른 요소를 사용하기에도 필수적이기도 하구요.

 

 

 

단, 이걸 써먹을라면 한 가지 조건이 있습니다.

 

 

 

 

 

어.. 그런데.. 기존에 사용하던 Android Studio는 너무 구닥다리였습니다. 무려 버전 3.2.1... 2018년 10월 빌드...

 

 

 

IDE를 업데이트 하자

워낙 이런 판올림은 예기치 못한것들을 겪기 때문에 쉽게 결정을 할 수 없었습니다. 😤

 

그러나 저는 상남자이므로 기존 3.2.1 버전 IDE를 2021년 3월에 출시한 4.1.3 버전으로 업데이트를 강행하였습니다. 

 

업데이트..........

 

업데이트 에러 발생 😥

남자답게 업데이트 강행 중 한 가지 문제가 발생했습니다. Elevator로 업데이트 진행 중 몇 파일에서 충돌하여 업데이트를 할 수가 없었습니다.

 

호에에..

 

 

 

다행히도 Stack overflow에 같은 문제점을 호소하는 외궈분들이 계셨고, 솔루션은 심플했습니다. 같은 버전의 Zip Archive를 다운로드 받고 기존에 설치된 IDE 바이너리와 비교 후 똑같이 맞춰주면 된다고 합니다.

 

Great solution. Thanks – Red wine Apr 19 '20 at 6:01

 

 

Zip Archive

Android 스튜디오 다운로드 자료실로 이동하면 이전 버전들의 설치 파일, Zip Archive 들을 다운로드할 수 있습니다. 기존 버전의 3.2.1을 다운로드 후 압축 해제를 하고 compare 프로그램으로 비교를 해보았습니다. 예상대로 업데이트 중 conflict가 발생한 파일들이 동일하게 확인되었네요.

 

 

 

 

이 당시 저에겐 미련이 없었기 때문에 수정된 파일, 추가된 파일 모두 Zip Archive과 동일하게 덮어쓰기, 삭제를 해주었습니다. 파일들을 동일하게 출고상태로 맞추어 주었으니 다시 업데이트를 진행을 하니 문제 없이 완료 되었습니다.😀

 

 

 

기존 프로젝트 OPEN!

기본적으로 Gradle sync / APK Build / App deployment는 어찌어찌 동작합니다.

 

그러나, 기존 프로젝트의 Gradle 버전이 워낙 이전의 것을 사용하고 있어 Gradle Sync 시 IDE에서 경고성 에러 메시지가 출력된다거나 Gradle을 판올림해보면 빌드 자체가 안되는 등 거슬리는게 한 두개가 아니었습니다.

 

 

 

이대로는 기존 프로젝트와 병행하여 사용할 수 없다고 판단하였습니다!

 

 

 

TWO TRACK

원점으로 돌아와 기존 IDE를 클린 제거 후 3.2.1 버전과 4.1.3버전을 동시에 설치하기로 하였습니다.

 

CLEAN 제거는 설치프로그램으로 설치 후 제거하였다면 아래의 패스에 해당 설정 폴더가 남아있는지 확인해주세요.

 

  • \Users\유저이름\.AndroidStudioX.Y
  • \Users\유저이름\AppData\Local\Google\AndroidX.Y
  • \Users\유저이름\AppData\Roaming\Google\AndroidX.Y
  • \Users\유저이름\AppData\Local\JetBrains\AndroidX.Y
  • \Users\유저이름\AppData\Roaming\JetBrains\AndroidX.Y

Android 스튜디오 다운로드 자료실에서 3.2.1 버전과 4.1.3 버전을 Zip Archive로 다운로드 하고 각각 적절한 위치에 압축을 해제합니다.

 

윈도우 실행 파일은 %IDE_PATH%\bin 폴더 내에 studio64.exe로 실행할 수 있으며 시작 화면에 등록하고 싶은 경우 실행 파일명은 적절하게 바꾸어주어도 됩니다. 이 파일 이름이 시작 화면에 표시되는 텍스트와 동일하게 표기되기 때문입니다. 아니면 바로가기를 만들어서 시작화면이나 작업 표시줄에 고정해줄 수 있습니다.

 

 

 

 

 

우선 기존 3.2.1 버전 IDE는 별도의 설정 없이 바로 실행을 하여 환경구성을 마칩니다.

 

이후 4.1.3 버전을 실행 시 기존 3.2.1 설정 값을 지울지 물어보는데 Cancel을 눌러 취소하게 되면 4.1.3 버전만의 설정 값이 분기되어 관리됩니다.

 

 

 

  • 3.2.1: \Users\유저이름\Android3.2에 설정 파일이 생성됩니다.
  • 4.1.3: \Users\유저이름\AppData\Local\JetBrains\Android4.1\Users\유저이름\AppData\Roaming\JetBrains\Android4.1 에 설정 파일이 생성됩니다.

 

 

 

냥캣 프로그레스바 플러그인으로 예를 들어보겠습니다.

 

3.2.1 버전에 대응하는 플러그인 버전은 1.12인 반면 4.1.3 버전에 대응하는 플러그인 버전은 1.14로 각 별도의 버전으로 관리되고 있는 것을 확인할 수 있습니다.

 

 

3.2.1 버전 냥캣 프로그레스바 플러그인
4.1.3 버전 냥캣 프로그레스바 플러그인

 

 

 

 

 

 

 

저의 경우 3버전과 4버전의 차이로 설정 값 대부분이 새로 관리되었으나 만약 메이저 버전이 같은 경우나 설정 값을 별도로 설정하고 싶은 경우에는 아래와 같이 별도의 과정을 거치면 IDE 설정 파일을 별도로 관리할 수 있습니다.

 

다만 플러그인 참조쪽의 path가 자연스럽게 설정이 되지 않는 점이 있기에 참고 부탁드립니다.

 

 

4.1.3 버전 바이너리를 실행하기 전에 %IDE_PATH%\bin\idea.properties파일을 열어 아래 라인들의 주석을 제거합니다.
(#삭제)

idea.config.path=${user.home}/.AndroidStudio/config
idea.system.path=${user.home}/.AndroidStudio/system
idea.plugins.path=${idea.config.path}/plugins
idea.log.path=${idea.system.path}/log

 

여기서 별도로 수정이 필요한 라인은 idea.config.pathidea.system.path로 이 두 Path를 본인이 원하는 곳으로 변경을 해줍니다.

아래의 idea.plugins.pathidea.log.path는 별도로 손댈 필요는 없습니다. 주석 제거만 해주세요.

 

 

 

제 경우는 다음과 같이 설정하였습니다. (4.1.3을 붙여줌)

idea.config.path=${user.home}/.AndroidStudio4.1.3/config
idea.system.path=${user.home}/.AndroidStudio4.1.3/system
# idea.plugins.path=${idea.config.path}/plugins -> 원래는 이렇게 되어있는데 이 경우 플러그인 설치가 안됨
idea.plugins.path=${idea.system.path}/plugins
idea.log.path=${idea.system.path}/log

 

2020-04-13 추가

위와 같이 설정할 경우 플러그인이 설치가 안되는 현상이 있습니다. idea.plugins.path=${idea.system.path}/plugings로 해주어야 정상적으로 플러그인이 설치됩니다. (idea.config.path가 아님)이 부분 참고 부탁드립니다~

 

 

 

 

설정 파일 저장 후 4.1.3을 실행하여 초기 설정을 마치면 IDE 설정파일이 C:\Users\%사용자%\.Android4.1.3C:\Users\%사용자%\.Android3.2에 별도로 저장되어 있음을 확인할 수 있습니다.

 

 

 

 

 

이렇게 구성을 마치면 버전별 설정 충돌을 걱정하지 않고 개발을 진행할 수 있습니다~ 😀

 

 

 

 

참고