android - java.lang.NullPointerException:空对象引用上的 .Cursor.moveToFirst()'
问题描述
java.lang.NullPointerException:尝试在空对象引用上调用接口方法“boolean android.database.Cursor.moveToFirst()”
我想附上文件。
它可以是任何图像、doc、pdf。
在我的活动中:
String attachmentFile;
Uri URI = null;
private static final int PICK_FROM_GALLERY = 101;
int columnIndex;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_add_notice );
edBlock.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
openFolder();
}
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
try {
if (requestCode == PICK_FROM_GALLERY && resultCode == RESULT_OK) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
columnIndex = cursor.getColumnIndex(filePathColumn[0]);
attachmentFile = cursor.getString(columnIndex);
Log.e("Attachment Path:", attachmentFile);
URI = Uri.parse("file://" + attachmentFile);
cursor.close();
}
} catch (Exception e) {
e.printStackTrace();
Log.d( "Exception : " , e.getMessage() );
}
}
public void openFolder()
{
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.putExtra("return-data", true);
startActivityForResult(Intent.createChooser(intent, "Complete action using"), PICK_FROM_GALLERY);
}
它在 cursor.moveToFirst() 行的 onActivityResult 中生成错误;
解决方案
在移动光标之前尝试获取索引
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
try {
if (requestCode == PICK_FROM_GALLERY && resultCode == RESULT_OK) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToLast()
attachmentFile = cursor.getString(columnIndex);
Log.e("Attachment Path:", attachmentFile);
URI = Uri.parse("file://" + attachmentFile);
cursor.close();
}
} catch (Exception e) {
e.printStackTrace();
Log.d( "Exception : " , e.getMessage() );
}
}
推荐阅读
- javascript - javascript中的DOT.files?这是什么意思?
- javascript - AWS Lambda & API Gateway - 来自浏览器的 500 但不是来自 curl
- ios - 关闭一个自定义弹出 UIViewController 并立即呈现另一个自定义弹出 UIViewController -SWIFT
- mongodb - 当我在终端中输入 mongod 时,我的 MongoDB 不工作
- angular - 部署失败时的角度 6 路由
- python - 在 Google VM (Ubuntu) 上安装 TA-lib
- python - 使用 pandas 的 csv 值总和
- wix - 错误 CNDL0027:File/@Name 属性的值不是有效的 8.3 兼容名称
- data-binding - Kotlin 2路绑定自定义视图
- php - 如何从类函数返回数组