LYnLab

블로그취미로그

SDK 타깃을 Nougat으로 올렸을 때 Java 1.8을 요구하는 오류 문제

macOS(OS X)의 안드로이드 스튜디오에서 SDK 버전을 N으로 올리면, JDK 8이 설치되어있음에도 Java 1.8 이상이 필요하다는 메시지와 함께 레이아웃 프리뷰 등이 보이지 않는 문제가 발생한다.

2016-08-05#프로그래밍

💡 이 글은 작성된지 1년 이상 지났습니다. 정보글의 경우 최신 내용이 아닐 수 있음에 유의해주세요.

현상

macOS(OS X)의 안드로이드 스튜디오에서 SDK 버전을 N으로 올리면, JDK 8이 설치되어있음에도 아래 메시지와 함께 레이아웃 미리보기 등이 보이지 않는 문제가 발생한다.

Android N requires the IDE to be running with Java 1.8 or later.

또는

Android Nougat requires the IDE to be running with Java 1.8 or later.

빌드나 실행에는 문제가 없다.

원인

안드로이드 스튜디오, 정확히는 스튜디오의 기반인 인텔리제이의 JVM 옵션은 기본적으로 Java 1.6을 타깃으로 지정한다. 때문에 빌드 타깃이 1.8이더라도 스튜디오 자체 JVM을 사용하는 미리보기 등은 정상적으로 동작하지 않게 된다.

해결책

  1. 터미널 등의 에디터에서 /Applications/Android Studio.app/Contents/Info.plist 파일을 연다.
  2. <key>JVMVersion</key>를 찾아서, 해당 값을 바꾸어준다.
    • <string>1.6*,1.7+</string> 등으로 되어있는 경우가 많으며, 이 경우에는 1.6*를 지우면 해결된다. 반드시 1.8을 명시적으로 지정할 필요는 없다.
      1. 안드로이드 스튜디오를 재시작한다.

Clean 후 재빌드 해주면 해결된다.

뒤따르는 이슈

위와 같이 버전을 수정할 경우 레이아웃 미리보기에서의 한글 깨짐, 안드로이드 스튜디오의 화면이 전반적으로 어두워지고 폰트가 달라짐 등의 증상이 발생하는데, 이에 대한 원인은 아직 파악하지 못했다.

2016년 9월 1일 업데이트

한글 깨짐 문제에 대한 원인과 해결책은 다음 포스트에 작성하였다: Android Studio 레이아웃 프리뷰에서의 한글 깨짐 문제.

관련된 글

Rails와 GitHub Actions에 커버리지 레포트를 달아보자

이 블로그의 CMS이기도 한 Shiori를 대폭 리팩토링하면서 테스트가 얼마나 잘 작성되어있는지 궁금해졌습니다.

Rails Global ID로 전역 객체 식별하기

Global ID는 Rails의 모든 객체를 식별할 수 있는 URI(Uniform Resource Identifier)입니다.

Ruby on WebAssembly: 살짝 맛보기

Ruby 3.2에 추가된 WebAssembly 지원을 간단하게 테스트해봅시다.

작성한 댓글은 giscus를 통해 GitHub Discussion에 저장됩니다.

크리에이티브 커먼즈 라이선스크리에이티브 커먼즈 저작자표시크리에이티브 커먼즈 동일조건변경허락

본 사이트의 저작물은 별도의 언급이 없는 한 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

© 2011 - 2024 Hoerin Doh, All rights reserved.

LYnLab 로고GitHubTwitterInstagram