Gradle : '11 .0.2 '에서 Java 버전을 확인할 수 없습니다.
다음 댓글을 달았습니다.
./gradlew app:installDebug
로그 만해 야합니다.
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine java version from '11.0.2'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at https://help.gradle.org
내 버전의 gradle은 5.1.1입니다.
------------------------------------------------------------
Gradle 5.1.1
------------------------------------------------------------
Build time: 2019-01-10 23:05:02 UTC
Revision: 3c9abb645fb83932c44e8610642393ad62116807
Kotlin DSL: 1.1.1
Kotlin: 1.3.11
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM: 11.0.2 (Oracle Corporation 11.0.2+9-LTS)
OS: Mac OS X 10.13.6 x86_64
진행 방법을 잘 모르겠습니다 (업그레이드 / 다운 그레이드를 시도했지만 지금까지 아무것도 작동하지 않습니다).
갱신했을 때 ./gradlew --version
다음을 얻었습니다.
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine java version from '11.0.2'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at https://help.gradle.org
내 포함 gradle-wrapper.properties
:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip
시스템에는 두 가지 다른 Gradle 애플리케이션이 있습니다.
시스템 전체 Gradle
을이 응용 프로그램이 호출gradle (arguments)
됩니다.Gradle을-래퍼
Gradle을-래퍼는 모든 프로젝트에 고유 만 명령을 사용하여 프로젝트의 디렉토리 내에서 호출 할 수 있습니다./gradlew (arguments)
.
시스템 전체의 gradle 버전은 5.1.1입니다 (OP가 주석에 설명 된대로 명령을 실행하면 gradle --version
버전 5.1.1이 반환 됨).
그러나 실패는 gradle-wrapper ( ./gradlew
) 에 대한 호출의 결과입니다 . 프로젝트의 gradle 래퍼 버전을 확인할 수 있습니까? 이를 위해 ./gradlew --version
gradlew 및 gradlew.bat 파일이있는 디렉토리의 프로젝트 폴더 내 에서 실행 합니다.
업데이트 1 : 실행
이 ./gradlew --version
실패하면 파일을 열어 래퍼의 버전을 수동으로 확인할 수 있습니다.
(프로젝트의 루트 폴더) /gradle/wrapper/gradle-wrapper.properties
간단한 텍스트 편집기로. 내부의 "distributionUrl"은 래퍼의 버전이 무엇인지 알려줘야합니다.
업데이트 2 : OP의 업데이트 된 질문에 따라 gradle-wrapper의 버전은 4.1RC1입니다.
Gradle 은 Gradle 5.0에서 JDK 11에 대한 지원을 추가했습니다 . 따라서 4.1RC는 JDK 11을 지원하지 않으므로 확실히 문제입니다.
확실한 방법은 프로젝트의 gradle-wrapper를 버전 5.0으로 업데이트하는 것입니다. 그러나 업데이트하기 전에 gradle app:installDebug
. 버전이 5.1.1이고 Java 11을 지원하는 시스템 전체에 Gradle을 사용합니다. 작동하는지 확인합니다. 파일 빌드 펼쳐 (파일 build.gradle)는 v.4.1RC1과 v.5.1.1 사이의 주요 변경 사항의 영향을받지 않는 프로젝트 폴더 내의 명령 줄에서 실행하여 래퍼를 업데이트 할 수 있습니다. gradle wrapper --gradle-version=5.1.1
[*].
gradle app:installDebug
실행되지 제대로 않으면 Gradle을 빌드 스크립트를 업그레이드해야 할 수 있습니다. v.4.1RC1에서 5.1.1로 업데이트하기 위해 Gradle 프로젝트는 부 해제 된 주요 변경 사항과 지원 중단 기능에 대한 가이드 ( 1 , 2 )를 제공하는 점진적으로 최신 버전 업데이트로 할 수 있습니다.
Gradle 4.1RC1이 지원하는 버전으로 다운 그레이드 선택할 수 있습니다.
[*] @lupchiazoem의 다른 답변에서 지적했듯이 사용 gradle wrapper --gradle-version=5.1.1
( ./gradlew
원래 실수로 게시 한 것과 동일한 내용 ). 그 이유는 Gradle이 Java에서 실행되기 때문입니다. 작동중인 Gradle 배포 (시스템 전체에 Gradle 또는 gradle-wrapper 자체)를 사용하여 gradle-wrapper를 업데이트 할 수 있습니다. 그러나이 경우 래퍼가 더 많은 Java 버전과 호환되지 않는 시스템 전체 Gradle (일명 gradle
및 아님 ./gradlew
) 을 사용합니다 .
으로는 distributionUrl
여전히 사용 랩퍼 업그레이드 이전 버전 도면 :
gradle wrapper --gradle-version 5.1.1
참고 : 사용 gradle
하지 말고gradlew
제 경우에는 JAVA_HOME
변수가로 설정되었습니다 /usr/lib/jvm/jdk-11.0.2/
. 다음과 같이 변수를 설정 해제하는 충분합니다.
$ export JAVA_HOME=
래퍼 버전은 11+를 지원하지 않기 때문에 InteliJ의 최신 버전을 영원히 속이는 간단한 트릭을 만들 수 있습니다.
press3x Shift -> type "Switch Boot JDK" -> and change for java 8.
https://blog.jetbrains.com/idea/2015/05/intellij-idea-14-1-4-eap-141-1192-is-available/
또는 Java 11 이상으로 작업하려면 래퍼 버전을 4.8 이상으로 업데이트하면됩니다.
나는 같은 문제가 있었다. gradle 5.0으로 업그레이드하는 것이 저에게 트릭이었습니다.
이 링크는 gradle 5.0을 설치하는 방법에 대한 자세한 단계를 제공합니다 : https://linuxize.com/post/how-to-install-gradle-on-ubuntu-18-04/
긴 대답을 짧게 표현하려면 gradlew
시스템 gradle
도구를 사용하여 업그레이드하십시오 . 아래 업그레이드는 시스템 gradle
버전이 < 5
.
gradle wrapper --gradle-version=5.1.1
비슷한 문제가 발생했습니다. 나는 이것을 삭제했다 :
- .idea 폴더 (YourApp> .idea> ..)의 라이브러리 및 캐시 및
빌드 폴더의 내용.
그런 다음 재건하십시오.
* 먼저 프로젝트를 백업하는 것을 잊지 마십시오 *
Ubuntu 18.04.3 LTS에서 동일한 문제가 발생했습니다. 제 경우에는 apt가 gradle 버전 4.4.1을 설치했습니다. 이미 설치된 Java 버전은 11.0.4입니다.
내가받은 빌드 메시지는
Could not determine java version from '11.0.4'.
당시 대부분의 온라인 문서는 gradle 버전 5.6을 참조 했으므로 다음을 수행했습니다.
sudo add-apt-repository ppa:cwchien/gradle
sudo apt update
sudo apt upgrade gradle
그런 다음 프로젝트 초기화를 반복했습니다 (기본값으로 "gradle init"사용). 그 후 "./gradlew build"가 올바르게 작동했습니다.
나중에 gradle이 중단되는 원인이 된 "java --version"의 출력 형식 변경에 대한 주석을 읽었으며 이는 이후 버전의 gradle에서 수정되었습니다.
제 경우에는 이전 Unity 3D 프로젝트 용 APK를 빌드하고 가져 오려고했습니다 (Android 휴대폰에서 게임을 할 수 있도록). 최신 Android Studio 버전과 Android Studio의 SDK Manager를 통해 다운로드 할 수있는 모든 SDK 패키지를 사용하고있었습니다. SDK 패키지는
C:/Users/Onat/AppData/Local/Android/Sdk
그리고 내가받은 오류 메시지는 JDK (Java Development Kit) 버전 "jdk-12.0.2"를 제외하고는 동일했습니다. JDK는
C:\Program Files\Java\jdk-12.0.2
Windows의 환경 변수는 JAVA_HOME : C : \ Program Files \ Java \ jdk-12.0.2
3 시간의 조사 끝에 Unity가 JDK 10을 지원하지 않는다는 사실을 알게되었습니다 https://forum.unity.com/threads/gradle-build-failed-error-could-not-determine-java-version-from-10-0-1.532169/
. 내 제안은 다음과 같습니다.
- 이미 설치되어있는 경우 원하지 않는 JDK를 제거하십시오. https://www.java.com/tr/download/help/uninstall_java.xml
- 머리
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- 아직 로그인하지 않은 경우 Oracle 계정에 로그인 / 열기.
- 컴퓨터 설정 (32 비트 / 64 비트, Windows / Linux 등)을 위해 오래되었지만 작동하는 JDK 8을 다운로드하십시오.
- JDK를 설치하십시오. 설치 경로를 기억하십시오. ( https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/ )
- Windows를 사용하는 경우 환경 변수를 열고 오른쪽 클릭을 통해 Java 경로를 변경하십시오.
Computer/This PC>Properties>Advanced System Settings>Environment Variables>New>Variable Name: JAVA_HOME>Variable Value: [YOUR JDK Path, Mine was "C:\Program Files\Java\jdk1.8.0_221"]
- Unity 3D에서을 누릅니다
Edit > Preferences > External Tools and fill in the JDK path (Mine was "C:\Program Files\Java\jdk1.8.0_221")
. - 또한 동일한 팝업에서 SDK 경로를 편집합니다. (에서 가져옵니다
Android Studio > SDK Manager > Android SDK > Android SDK Location
.) - 필요한 경우 변경 사항을 적용하려면 컴퓨터를 다시 시작하십시오.
비슷한 문제가 발생했습니다. 기본값 gradle wrapper
은 버전 4.x 였고 더 높은 버전의 Java에 대한 지원은 Gradle 5에 추가되었습니다.
https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapper에gradlew
설명 된 대로 업데이트 했습니다.
TLTD :
./gradlew wrapper --gradle-version 5.6.2
File-> Project Structure를 클릭하여이 문제를 해결 한 다음 JDK 위치를 Embedded JDK를 사용하도록 변경했습니다 (권장).
프로젝트 파일에 도착했습니다. gradle / wrapper / gradlewrapper.properties
거기에서 값을 distributionurl
최신 버전으로 변경할 수 있습니다 . (docs.gradle.org에 있음)
여기에도 같은 문제가있었습니다. 제 경우에는 이전 버전의 JDK를 사용해야하고 sdkmanager 를 사용하여 JDK 버전을 관리하고 있으므로 가상 머신의 버전을 1.8로 변경했습니다.
sdk use java 8.0.222.j9-adpt
그 후 앱이 여기에서 예상대로 실행됩니다.
참고 URL : https://stackoverflow.com/questions/54358107/gradle-could-not-determine-java-version-from-11-0-2
'ProgramingTip' 카테고리의 다른 글
Spring 트랜잭션에서 requires_new와 중첩 된 전파의 차이점 (0) | 2020.11.08 |
---|---|
안드로이드 최고의 OCR (광 문자 인식) 예제 (0) | 2020.11.08 |
`git add .`와`git add -u`의 차이점은 무엇입니까? (0) | 2020.11.08 |
클러스터 수를 알 수없는 비지도 클러스터링 (0) | 2020.11.08 |
pip로 git 하위 디렉토리에서 어떻게합니까? (0) | 2020.11.08 |