티스토리 뷰

반응형

윈도우 환경에서 Cordova의 Android를 사용하기 위해 Android Studio와 JDK가 설치는 되어있지만 환경 미설정 등의 원인으로 오류가 발생되었을 때 해결방법을 알아보겠습니다.

 

사전 요구사항

- Android Studio 설치

- JDK 8 설치

- Node.js 및 Cordova CLI 패키지 설치

 

 

ANDROID_SDK_ROOT 환경 변수 미설정 상황의 오류

> cordova build android
Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=undefined (recommended setting)
ANDROID_HOME=undefined (DEPRECATED)
Failed to run "javac -version", make sure that you have a JDK version 8 installed.
You can get it from the following location:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

ANDROID_SDK_ROOT와 ANDROID_HOME 두개가 undefined라고 되어있지만 ANDROID_SDK_ROOT만 설정하면 됩니다.

 

환경 변수에서 값 C:\Users\<사용자>\AppData\Local\Android\SdkANDROID_SDK_ROOT로 추가합니다.

 

* 환경 변수는 설정 > 시스템 > 정보 > 고급 시스템 설정에 있습니다.

* 환경 변수 추가 및 변경이 되면 IDE나 명령 프롬프트 등 실행하는 셸을 닫았다가 다시 실행해야 반영됩니다.

 

 

JAVA_HOME 환경 변수 미설정 상황의 오류

글쓴이인 경우 JRE 경로로 설정되어 있어서 발생된 상황입니다. 설정되어있지 않아도 비슷한 오류를 출력할 것입니다.

Your JAVA_HOME is invalid: C:\Program Files\Java\jre1.8.0_231

 

환경 변수에서 값 C:\Program Files\Java\jdk1.8.0_231JAVA_HOME로 추가합니다. (마지막 경로 jdk1.8.0_231는 버전에 따라 달라질 수 있습니다. 설치된 버전에 맞게 변경)

 

 

Gradle 환경 변수 미설정 상황의 오류

> cordova build android
Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=C:\Users\User\AppData\Local\Android\Sdk (recommended setting)
ANDROID_HOME=undefined (DEPRECATED)
Using Android SDK: C:\Users\User\AppData\Local\Android\Sdk
Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle
in your path, or install Android Studio

환경 변수의 PATHC:\Users\<사용자>\.gradle\wrapper\dists\gradle-7.0.2-bin\857tjihv64xamwrf0h14cai3r\gradle-7.0.2\bin을 추가합니다. (gradle-7.0.2와 857tjihv64xamwrf0h14cai3r는 다를 수 있습니다. 자신의 컴퓨터에 설치된 이름으로 적절히 변경하며 마지막에 bin폴더까지 포함되어야 합니다.)

 

만약 C:\Users\<사용자>\.gradle이 없다면? Android Studio를 설치하고 한번도 빌드를 한 적이 없어서 Gradle이 설치되지 않은 경우입니다.

 

Android Studio를 실행해서 임의 빈 프로젝트를 생성한 후, Run을 해서 실행해주면 Gradle이 설치됩니다.

 

 

Gradle의 Android SDK 라이센스 빌드 오류

위 환경설정이 잘 되었지만, SDK License로 아래와 같이 오류가 발생되는 경우

> cordova build android
Checking Java JDK and Android SDK versions
...

Welcome to Gradle 7.0.2!
...
Checking the license for package Android SDK Platform 29 in C:\Users\User\AppData\Local\Android\Sdk\licenses
Warning: License for package Android SDK Platform 29 not accepted.

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> Failed to install the following Android SDK packages as some licences have not been accepted.  
     platforms;android-29 Android SDK Platform 29
  To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
  Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html

  Using Android SDK: C:\Users\User\AppData\Local\Android\Sdk

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 37s

두 가지의 해결 방법이 있습니다.

1. Android Studio에서 임의의 빈 프로젝트를 생성하고 Run을 실행하여 실제 앱을 실행 (실행 과정에서 License가 자연스럽게 반영)

2. 명령 프롬프트를 열고 아래 명령어를 실행 및 y로 동의

> cd C:\Users\<사용자>\AppData\Local\Android\Sdk\tools\bin
> sdkmanager.bat --licenses

 

 

Gradle의 dx.bat 빌드 오류

최근의 Android SDK에서 주로 발생되며, bat를 찾을 수 없다고 출력되는 아래와 같은 경우

> cordova build android
Checking Java JDK and Android SDK versions
...
Build-tool 31.0.0 is missing DX at C:\Users\User\AppData\Local\Android\Sdk\build-tools\31.0.0\dx.bat

FAILURE: Build failed with an exception.

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

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s

dx.bat 파일을 찾을 수 없다는 것인데, SDK 버전이 업데이트 되면서 파일명이 d8.bat로 바뀌었습니다. (작성 기준 Build-tool 31.0.0)

 

탐색기 등에서 C:\Users\<사용자>\AppData\Local\Android\Sdk\build-tools\31.0.0로 이동하고 d8.bat파일의 사본을 만든 후, 파일명을 dx.bat로 변경합니다.

다시 C:\Users\Interact\AppData\Local\Android\Sdk\build-tools\31.0.0\lib로 이동하고 d8.jar파일의 사본을 만든 후, 파일명을 dx.jar로 변경합니다.

 

30.0.0에서 같은 오류가 발생되는 경우에도 위 방식으로 해결 가능합니다. (폴더명은 31.0.0이 아니라 30.0.0이 되겠습니다.)

 

반응형
반응형