使用Kotlin+时的ClassCastException;Android项目中的progurad
代码: kotlin版本:1.2.60 它在调试版本中运行良好,但在发布版本中抛出ClassCastException:使用Kotlin+时的ClassCastException;Android项目中的progurad,android,kotlin,Android,Kotlin,代码: kotlin版本:1.2.60 它在调试版本中运行良好,但在发布版本中抛出ClassCastException: private val mediaPlayerListener by lazy { InnerMediaPlayerListener() } inner class InnerMediaPlayerListener : PlayerListenerCallback { // ... } 原因:java.lang.ClassCastException:xxx.xxx.Foo
private val mediaPlayerListener by lazy { InnerMediaPlayerListener() }
inner class InnerMediaPlayerListener : PlayerListenerCallback {
// ...
}
原因:java.lang.ClassCastException:xxx.xxx.FooClass$mediaPlayerListener$2无法强制转换为kotlin.jvm.functions.Function0
然后,我从发布版本反编译了.class:
private val mediaPlayerListener by lazy { InnerMediaPlayerListener() }
inner class InnerMediaPlayerListener : PlayerListenerCallback {
// ...
}
因此,问题是:
为什么QQMusicAudioPlayer$mediaPlayerListener$2
没有实现Function0
,而是在发布版本中扩展Lambda
?编译器在调试和发布版本之间的行为不同