Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Kotlin+时的ClassCastException;Android项目中的progurad_Android_Kotlin - Fatal编程技术网

使用Kotlin+时的ClassCastException;Android项目中的progurad

使用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

代码:

kotlin版本:1.2.60

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

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
?编译器在调试和发布版本之间的行为不同