디버그 모드에서는 문제 없지만, 릴리즈 모드에서
java.lang.ClassCastException: og.m cannot be cast to fc.f
com.github.mikephil.charting.data.Entry의 인스턴스를 코틀린 단에서 접근할 경우 에러 발생
proguard-rules.pro에
-keep class com.github.mikephil.charting.data.Entry { *; }
를 적용할 경우
java.lang.ClassCastException: og.m cannot be cast to com.github.mikephil.charting.data.Entry
에러 발생.
같은 클래스더라도 컴파일 시 다르게 분류됨.
-keep class com.github.mikephil.charting.data.** { *; }
-keep class com.example.Entry를 사용하는 클래스 { *; }
로 해결
=>
릴리즈 모드에서 코드의 난독화를 수행후 빌드를 진행.
문자의 난독화이기 때문에 같은 클래스명이 더라도 java단과 kotlin 단의 난독화된 심볼이 달라지게됨.
예: A.B가 java에서는 qa.m 으로 kotlin에서는 tw.a 로 난독화
양쪽 다 난독화를 해제해야 컴파일러 단에서 동일한 클래스를 호출하게 된다.