You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android MediaStore查询特定专辑≥20秒音频运行崩溃如何解决

问题原因

你编写的selection字符串拼接时未在两个查询条件之间添加SQL逻辑连接符AND和必要空格,导致最终生成的SQL查询语句语法错误,从抛出的异常日志可以看到生成的WHERE条件段为(duration >= ?album =?),不符合SQL语法规范,因此触发SQLite异常崩溃。

修复后的代码
val selection =
        "${MediaStore.Audio.Media.DURATION} >= ? AND ${MediaStore.Audio.Albums.ALBUM} = ?"
val selectionArgs = arrayOf(
    TimeUnit.MILLISECONDS.convert(20, TimeUnit.SECONDS).toString(),
    albumData?.albumName
)
补充注意点
  • 如果你后续还要新增更多查询条件,每个条件之间都需要用AND或者OR这类逻辑运算符连接,同时注意前后加空格避免字符串拼接后单词粘连
  • 如果albumData?.albumName可能为null,建议提前做非空判断,避免selectionArgs出现null值导致查询异常

内容的提问来源于stack exchange,提问作者Kaunain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:00:01