Kodein icon indicating copy to clipboard operation
Kodein copied to clipboard

Kodein 7 typeToken TypeNotPresentException for Android D8 desugared ZonedDateTime

Open eygraber opened this issue 5 years ago • 1 comments

Android's D8 desugars java.time classes on devices running lower than API 26 and this seems to be tripping up typeToken. Using the erased version in previous versions of Kodein worked fine, as does Kodein 7 when using a device with an API >= 26 (because it doesn't get desugared).

I am going to test Bind(erased<ZonedDateTime>()) (I will update when I get the results of that).

java.lang.TypeNotPresentException: Type java.time.ZonedDateTime not present
        at libcore.reflect.ParameterizedTypeImpl.getRawType(ParameterizedTypeImpl.java:67)
        at libcore.reflect.ParameterizedTypeImpl.getResolvedType(ParameterizedTypeImpl.java:76)
        at libcore.reflect.ListOfTypes.resolveTypes(ListOfTypes.java:70)
        at libcore.reflect.ListOfTypes.getResolvedTypes(ListOfTypes.java:55)
        at libcore.reflect.ParameterizedTypeImpl.getResolvedType(ParameterizedTypeImpl.java:75)
        at libcore.reflect.Types.getType(Types.java:56)
        at java.lang.Class.getGenericSuperclass(Class.java:828)
        at org.kodein.type.TypeReference.<init>(typeTokensJVM.kt:54)
        at co.myapp.common.Time_moduleKt$timeModule$1$$special$$inlined$bind$1.<init>(typeTokensJVM.kt:64)

eygraber avatar Jun 04 '20 02:06 eygraber

Using Bind(erased<ZonedDateTime>()) results in the same crash.

eygraber avatar Jun 04 '20 02:06 eygraber

https://github.com/kosi-libs/Kodein/issues/307 refers this as fixed

romainbsl avatar Nov 23 '23 13:11 romainbsl