在Android项目中使用Kotlin + progurad时发生ClassCastException

时间:2018-08-13 02:51:58

标签: android kotlin

代码:

private val mediaPlayerListener by lazy { InnerMediaPlayerListener() }

inner class InnerMediaPlayerListener : PlayerListenerCallback {
// ...
}

kotlin版本:1.2.60

它在调试版本中运行良好,但在发行版本中抛出ClassCastException:

Caused by: java.lang.ClassCastException: xxx.xxx.FooClass$mediaPlayerListener$2 cannot be cast to kotlin.jvm.functions.Function0

然后我从发布版本中反编译.class:

final class QQMusicAudioPlayer$mediaPlayerListener$2 extends Lambda

所以问题是:

为什么QQMusicAudioPlayer$mediaPlayerListener$2不实现Function0而是扩展Lambda而不是发布版本?编译器在调试和发行版本之间的行为有所不同吗?

0 个答案:

没有答案