[英]Music URI null pointer exception in Kotlin
问候我都过了好几天了还是解决不了问题,空指针
设置音乐 URI 时出现异常错误“var musicTrack = ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,curSong!!)”
fun PlaySong(){
mp!!.reset()
var song = songlist?.get(songPosition!!)
var curSong = song?.Id
var musicTrack = ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,curSong!!)
try {
mp!!.setDataSource(applicationContext,musicTrack!!)
}catch (e: Exception){
Log.e("Music Service","Error On Setting Data Source",e)
}
mp!!.prepareAsync()
}
堆栈跟踪表明问题发生在第 78 行。 mp
可能为空,并且您正在尝试对其调用一个方法,猜测。
使用!!
是一个不好的信号,因为这意味着 value 可能为 null,但您没有处理这种可能性并说“相信我,它永远不会为 null”。 那通常是行不通的! 我从经验得到的这个结论...
如果您知道它永远不会为空,要么将mp
设为不可为空的类型,否则您需要在对它执行任何操作之前对其进行空检查。 千万不要用!!
(极少数情况下你确实需要它,你会知道你需要它,这是规则的一个例外)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.