首页 > 解决方案 > Android 异常:cursor.getString(cursor....ColumnIndex("bucket_id")) 不能为空

问题描述

如何cursor.getString()在 Android Q 上方调用“bucket_id”和“bucket_display_name”?我可以使用MediaStore.Images.Media.BUCKET_IDreplace 'bucket_id' 来避免这种崩溃吗?

当然,我知道我可以避免得到像下面这样的字符串,这在cursor-getstringidx-must-not-be-null得到了回答

if (cursor.getType(idx) == FIELD_TYPE_STRING) {
    result = cursor.getString(idx);
}

标签: androidandroid-cursor

解决方案


发生的一种情况是,在 Android Q 中,根目录中的任何媒体文件(图像、视频等),文件夹名称都将返回为 null(在内部存储的情况下)。在以前的版本中,它作为专辑名称返回为 0。只需检查返回的文件夹名称是否为 null 并分配一些默认专辑名称,我猜你就可以避免这种崩溃。


推荐阅读