diff --git a/local_plugins/qq_music/android/src/main/kotlin/com/yunqiinnovation/qq_music/QQMusicManager.kt b/local_plugins/qq_music/android/src/main/kotlin/com/yunqiinnovation/qq_music/QQMusicManager.kt index 0bfb00a28..552a78c9f 100644 --- a/local_plugins/qq_music/android/src/main/kotlin/com/yunqiinnovation/qq_music/QQMusicManager.kt +++ b/local_plugins/qq_music/android/src/main/kotlin/com/yunqiinnovation/qq_music/QQMusicManager.kt @@ -449,17 +449,23 @@ class QQMusicManager(private val activity: Activity) { val songJson = songResult?.getString(Keys.API_RETURN_KEY_DATA) if (!songJson.isNullOrEmpty()) { try { - val songData = JsonParser.parseString(songJson).asJsonObject - syncData["currentSong"] = mapOf( - "id" to (songData.get("id")?.asString ?: ""), - "mid" to (songData.get("mid")?.asString ?: ""), - "name" to (songData.get("title")?.asString ?: ""), - "singer" to (songData.get("singer")?.asJsonObject?.get("title")?.asString ?: ""), - "album" to (songData.get("album")?.asJsonObject?.get("title")?.asString ?: ""), - "duration" to (songData.get("duration")?.asLong ?: 0L), - "coverUri" to (songData.get("album")?.asJsonObject?.get("coverUri")?.asString ?: "") - ) - Log.d(TAG, "歌曲信息同步成功: ${songData.get("title")?.asString}") + val jsonElement = JsonParser.parseString(songJson) + if (jsonElement.isJsonObject) { + val songData = jsonElement.asJsonObject + syncData["currentSong"] = mapOf( + "id" to (songData.get("id")?.asString ?: ""), + "mid" to (songData.get("mid")?.asString ?: ""), + "name" to (songData.get("title")?.asString ?: ""), + "singer" to (songData.get("singer")?.asJsonObject?.get("title")?.asString ?: ""), + "album" to (songData.get("album")?.asJsonObject?.get("title")?.asString ?: ""), + "duration" to (songData.get("duration")?.asLong ?: 0L), + "coverUri" to (songData.get("album")?.asJsonObject?.get("coverUri")?.asString ?: "") + ) + Log.d(TAG, "歌曲信息同步成功: ${songData.get("title")?.asString}") + } else { + Log.w(TAG, "返回的JSON不是有效的对象格式: $songJson") + syncData["currentSong"] = null + } } catch (e: Exception) { Log.e(TAG, "解析歌曲信息失败", e) syncData["currentSong"] = null