[英]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.