seong
Execution failed for task ':photo_manager:compileReleaseKotlin'.> 'compileReleaseJavaWithJavac' task (current target is 1.8) and 'compileReleaseKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.Consider us 본문
Flutter/Flutter
Execution failed for task ':photo_manager:compileReleaseKotlin'.> 'compileReleaseJavaWithJavac' task (current target is 1.8) and 'compileReleaseKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.Consider us
hyeonseong 2025. 4. 22. 12:28에러 코드
photo_manager 라이브러리가 jvm을 1.8을 타겟으로 하지만, 현재 나의 jvm은 17이라고 맞춰달라고 한다.
Execution failed for task ':photo_manager:compileReleaseKotlin'.
> 'compileReleaseJavaWithJavac' task (current target is 1.8) and 'compileReleaseKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.
Consider using JVM toolchain:
원인
나의 jvm 상태
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
compileOptions {
coreLibraryDesugaringEnabled true
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
photo_manager 라이브러리의 jvm 상태
보면 JavaVersion.VERSION_1_8 로 셋팅되어 있어서 문제가 발생했다.
JavaVersion getJavaFromHome(String path) {
def releaseFile = new File(path, "release")
if (releaseFile.exists()) {
def pattern = Pattern.compile("JAVA_VERSION=\"(\\d+)\"")
def matcher = pattern.matcher(releaseFile.text)
if (matcher.find()) {
def version = matcher.group(1)
log("Get java version from release file: $version")
return JavaVersion.toVersion(version)
}
} else {
def javaBin = new File("${path}/bin/java")
if (javaBin.exists()) {
return JavaVersion.VERSION_1_8
} else if (new File("${path}/bin/java.exe").exists()) {
return JavaVersion.VERSION_1_8
}
return null
}
}
해결
Flutter 버전을 3.29.3으로도 올려보고, 구글링등 많은 시도를 했지만 결국 실패 했었다
결국 마지막으로 시도 해서 성공한 방안은
내 JVM을 변경하기엔 사이드 이펙트가 너무 많이 발생한다. ( 다른 라이브러리에도 영향을 미침 )
Android -> photo_manager -> build.gradle 경로로 이동해서 직접 jvm을 내 프로젝트와 동기화를 시켜주었다.
if (javaBin.exists()) {
return JavaVersion.VERSION_17
} else if (new File("${path}/bin/java.exe").exists()) {
return JavaVersion.VERSION_17
}
'Flutter > Flutter' 카테고리의 다른 글
Firebase App Distribution으로 배포 시 FCM 안오는 이슈 (0) | 2025.05.06 |
---|---|
Flutter - Google_map (iOS) (1) | 2025.02.22 |
Flutter - flutter_foreground_task(2) (0) | 2024.11.13 |
Flutter - flutter_staggered_animations 애니메이션 적용기 (0) | 2024.11.10 |
Flutter - flutter_callkit_incoming 라이브러리 사용 ( Fake_call ) (0) | 2024.09.25 |