Attempt to invoke virtual method 'byte[] android.os.Bundle.getByteArray〜というエラーが発生する。
Androidで、アクティビティから別のアクティビティに画像を受けわたす処理を書いているのですが、親のアクティビティに戻るときに以下のエラーが発生するのですが、原因がわかりません。
エラーの解決策を教えていただきたいです。
java.lang.NullPointerException: Attempt to invoke virtual method 'byte[] android.os.Bundle.getByteArray(java.lang.String)' on a null object reference
以下が子アクティビティのコードです。
public class PhotoActivity extends AppCompatActivity {
Bitmap bmp;
ImageView mImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_photo_filter);
Bundle extras = getIntent().getExtras();
byte[] byteArray = extras.getByteArray(CropActivity.EXTRA_CROPPED_IMAGE);
bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
mImageView = findViewById(R.id.ImageView);
mImageView.setImageBitmap(bmp);
}
}
以下は親アクティビティです。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_crop);
Bundle extras = getIntent().getExtras();
byte[] byteArray = extras.getByteArray(MainActivity.EXTRA_IMAGE);
bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
mCropView = findViewById(R.id.cropImageView);
mCropView.setImageBitmap(bmp);
}
// 一部コード省略...
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_next) {
croppedBitmap = mCropView.getCroppedBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
croppedBitmap.compress(Bitmap.CompressFormat.JPEG, 50, stream);
byte[] byteArray = stream.toByteArray();
Intent intent = new Intent(CropActivity.this, PhotoFilterActivity.class);
intent.putExtra(EXTRA_CROPPED_IMAGE, byteArray);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
以下はAndroidManifestに指定しているactivityエレメントです。
<activity android:name=".PhotoFilterActivity"
android:label="Third Activity"
android:parentActivityName=".CropActivity"
android:screenOrientation="portrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.test.CropActivity" />
</activity>