我正在尝试从图库中选择一张图片,获取该图片的位图并将该位图编码为base64。但是我得到了这个错误:
尝试在空对象引用上调用虚方法'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap $ CompressFormat,int,java.io.OutputStream)'
以下是我所做的:
private Bitmap bitmap;
private String encodedbitmap;
...
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, 100);
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==100 && resultCode==RESULT_OK ){
Uri selectedimg=data.getData();
new Encodeimg().execute();
}
...
private class Encodeimg extends AsyncTask<Void,Void,Void>{
@Override
protected Void doInBackground(Void... params) {
bitmap=BitmapFactory.decodeFile(selectedimg.getPath());
ByteArrayOutputStream stream= new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG,100,stream);
byte[] bytes=stream.toByteArray();
encodedbitmap= Base64.encodeToString(bytes,0);
return null;
}
编辑:我知道NullPointerException是什么。我只是不明白为什么在这种情况下我得到了这个错误。因为我在这里看不到空对象。