본문 바로가기

문제해결 tip정보

[문제해결] android license status unknown

flutter doctor 실행 후 발생하는 현상

 

android license status unknown를 보게 된다면

 

당연히 flutter doctor --android-licenses를 쳐도

 

A newer version of the Android SDK is required. To update, run:

C:\Users\[사용자이름]\AppData\Local\Android\sdk\tools\bin\sdkmanager --update

 

문구가 뜰뿐이다. (나도 업데이트 하고 싶다고ㅠㅠ) 

 

또 볼 수 있는건 에러? 오류?

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

...............(생략)

 

이런 문구들도 볼수 있다. (또 있는데... 귀차니즘ㅈㅅ)

 

다 집어치우고.... 왜 이런 현상이 발생했냐?

구글링 결과 간단히 말하면 java 버전이 문제다.

 

참고로 난 openjdk 11 버전 사용 중

그런데 이걸 해결하려면 jdk8 버전으로 가야한단다...

 

대부분 찾아보니 jdk9버전 쓰는 사람들이 위 같은 현상으로 구글링 하고  해답을 찾고 있었다. (jdk10도 마찬가지)

 

결국 jdk 9이상버전에서는 안된다. (이유인 즉 참조 관련인데... 생략하고.... 빨리 해결해야지...)

 

해결방법

1. jdk8로 가라.

2. jdk11,12는 아래와 같은 방법을 사용하면 됨. (jdk9,10은 테스트 못함-참고로 9,10과 11은 조금 다른 형태(?)라고 함. )

 

[해결법]

 

1. %LOCALAPPDATA%\Android\Sdk\tools\bin 폴더에 sdkmanager.bat 파일을 편집기로 열기 

 

참고로 전 vscode

 

 

2. 아래 코드를 찾는다.  

%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %SDKMANAGER_OPTS% .............

 

 

3. 코드를 찾았으면 바로 위줄에 박스친 부분을 삽입시켜준다. 

set CLASSPATH=%CLASSPATH%;%APP_HOME%\mylib\jaxb-api.jar

set CLASSPATH=%CLASSPATH%;%APP_HOME%\mylib\jaxb-core.jar

set CLASSPATH=%CLASSPATH%;%APP_HOME%\mylib\jaxb-impl.jar

set CLASSPATH=%CLASSPATH%;%APP_HOME%\mylib\jaxb-jxc.jar

set CLASSPATH=%CLASSPATH%;%APP_HOME%\mylib\jaxb-xjc.jar

set CLASSPATH=%CLASSPATH%;%APP_HOME%\mylib\activation.jar

set CLASSPATH=%CLASSPATH%;%APP_HOME%\mylib\istack-commons-runtime.jar

 

 

4. %LOCALAPPDATA%\Android\Sdk\tools\ 에 mylib폴더를 만든 후 아래 jar 파일을 다운받는다.

http://central.maven.org/maven2/javax/activation/activation/1.1.1/activation-1.1.1.jar      

http://central.maven.org/maven2/com/sun/xml/bind/jaxb-impl/2.3.2/jaxb-impl-2.3.2.jar  

http://central.maven.org/maven2/com/sun/xml/bind/jaxb-xjc/2.3.2/jaxb-xjc-2.3.2.jar  

http://central.maven.org/maven2/org/glassfish/jaxb/jaxb-core/2.3.0.1/jaxb-core-2.3.0.1.jar  

http://central.maven.org/maven2/org/glassfish/jaxb/jaxb-jxc/2.3.2/jaxb-jxc-2.3.2.jar  

http://central.maven.org/maven2/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar  

http://central.maven.org/maven2/com/sun/istack/istack-commons-runtime/3.0.7/istack-commons-runtime-3.0.7.jar  

 

불안했다. 평소 확실한 파일이어도 이런 문구뜨면 절대 다운 안한다. 하지만 용기내서 했다. (불안하시면 다운금지요!!)  

 

파일뒤에 숫자는 지운다. ex) activation-1.1.1.jar 를  activation.jar로 파일이름 변경 

 

 

 

5. 이제 sdkmanager --update 를 해보자. 제대로 update 실행된다.

 

6. flutter doctor 로 확인해보자. 드디어 보고 싶었던 문구 나왔다.

 

 

7. flutter doctor --android-licenses 실행 후 모든 질문에 y 엔터하면 된다.

 

 

8. 마지막으로 flutter doctor로 설치 확인해보면 끝

 

잘 된다.... 

먼저 찾았던 좀 더 쉬운 방법으로 됐으면 좋았을려만.... 여기까지 왔다.

 

그럼 수고!!!!!!!!!!!!!!!!!!