JVM
-
java.lang.IncompatibleClassChangeError: Found class...Android/Error 2023. 9. 16. 18:06
기존에 사용하는 모듈을 외부라이브러리로 분리하고 참조를 하였는데 빌드는 성공하였지만 Runtime 환경에서 해당 라이브러리를 사용하는 부분에 접근시 앱이 죽으면서 아래와 같은 에러가 발생함 java.lang.IncompatibleClassChangeError: Found class com.beust.klaxon.KlaxonJson, but interface was expected (declaration of 'com.beust.klaxon.KlaxonJson' appears in .... 분명 내부코드가 변경되거나 수정된 점이 없고 단지 모듈을 분리해서 jitpack 으로 외부라이브러리로 만들어서 사용하였는데 해당문제가 발생함 해당 문제는 사용하는 쪽의 앱과 라이브러리 모두 com.beust:klaxon..
-
Inheritance from an interface with '@JvmDefault' members is only allowed with -Xjvm-default optionAndroid/Error 2022. 8. 17. 11:28
Inheritance from an interface with '@JvmDefault' members is only allowed with -Xjvm-default option gradle 빌드시 해당에러가 발생하는 경우가 있습니다. 해당에러가 발생하는 이유는 @JvmDefault 해당 어노테이션이 Deprecated 되면서 kotlin의 interface 의 defalut method가 생성되지 않아서 컴파일시 문제가 발생하는 현상이 었습니다. 해결방법은 -Xjvm-default 옵션을 사용하는 해결하는것 입니다. build.gradle 의 kotlinOptions 에 freeCompilerArgs = ['-Xjvm-default=enable'] 옵션을 추가하면 정상적으로 컴파일 되는것을 확인 할 수 ..
-
Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6Android/Error 2020. 1. 9. 00:05
Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6 위와 같은 에러가 발생시 App build.gradle 에 아래의 부분을 추가합니다. android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = JavaVersion.VERSION_1_8.toString() } } 또는 preferences... -> kotlin Compier -> Kotlin to JVM -> Tar..
-
GC(Garbage Collection) 가비지 컬렉터Domain knowledge 2019. 8. 27. 01:33
GC(Garbage Collection)는 프로그램이 실행되면서 메모리에 할당한 내용이 더이상 프로그램에서 사용하지 않을경우 자동으로 메모리에 할당한 영역을 제거하는 메모리 관리 방법이자 메모리를 관리하는 기능을 말합니다. 기본적으로 메모리를 할당하고 해제하는 것은 프로그래머가 직접 코드로 작성하여야 하나 프로그래머의 실수나 구조상의 문제등으로 메모리 누수가 발생할 수 있기때문에 자동으로 메모리를 관리해주는 GC가 나오게 되었습니다. 가장 대표적인것이 JVM의 GC 입니다. GC의 역할은 3가지 입니다. 1. 메모리 할당 2. 사용중인 메모리 확인 3. 비사용중인 메모리 확인 자바(JAVA)에서 기본적으로 메모리는 5가지 영역으로 나누며 스텍영역(Stack Area) , PC 레지스터(PC Registe..