我将Android项目从1.3.20切换到1.3.30,当它们调用hashCode()方法时,突然从某些类中获取异常。请注意,我仅在Android平台API 21和22上才获得此异常,而在Android API 24之外,一切正常。
由于:java.lang.NoSuchMethodError:没有静态方法hashCode(J)I 在Ljava / lang / Long类中;或其超类(声明为 “ java.lang.Long”出现在/system/framework/core-libart.jar)
有一个thread提到了类似的症状,但那是针对Kotlin 1.2的,我想知道是否有人遇到类似的情况,是否有解决方法?
答案 0 :(得分:3)
作为替代方案,您可以将Kotlin编译的JVM目标设置为"1.6"
,因为Kotlin 1.3.30已开始从android.compileOptions
中的Java版本推断出JVM目标并选择{{1 }},如果"1.8"
和sourceCompatibility
都设置为该值或更高。
在模块的targetCompatibility
中,添加:
build.gradle
the issue in D8 desugaring固定后就不需要这样做。
此问题在Kotlin问题跟踪器中被跟踪为KT-31027。
答案 1 :(得分:1)
这与此问题有关-https://issuetracker.google.com/issues/129730297,因此解决方案似乎是升级到最新的AGP!