JAVAlang.NullPointerException:com上的uri。安卓内部的util。先决条件。checkNotNull
我在查询提交表单中使用多部分上传进行图像上传,在我的情况下,图像上传是可选的,所以当我不使用图像时,它会抛出空指针,所以我需要它是可选的
public String getPath(Uri uri) {
Cursor cursor = AskQueryActivity.this.getContentResolver().query(uri, null, null, null, null); // this line throws error
assert cursor != null;
cursor.moveToFirst();
String document_id = cursor.getString(0);
document_id = document_id.substring(document_id.lastIndexOf(":") + 1);
cursor.close();
cursor = AskQueryActivity.this.getContentResolver().query(
安卓.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null, MediaStore.Images.Media._ID + " = ? ", new String[]{document_id}, null);
assert cursor != null;
cursor.moveToFirst();
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
cursor.close();
return path;
}
错误日志
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.admin.lorem.ipsum, PID: 3818
java.lang.NullPointerException: uri
at com.安卓.internal.util.Preconditions.checkNotNull(Preconditions.java:60)
at 安卓.content.ContentResolver.query(ContentResolver.java:474)
at 安卓.content.ContentResolver.query(ContentResolver.java:434)
# 1 楼答案
由于@albert_nil state here检查
URI
不应为空以执行Cursor query
,如果URI
仍然返回null
,则通过Toast or log
如下方式处理# 2 楼答案
只需将此添加到intent或ActivityResult中即可