カメラの意図を使用して取得するキャプチャ画像からファイルパスを取得しようとしています。写真を撮影し、それを返すことは正常に動作しますが、私は意図からデータを取得し、そのパスを取得することにより、OnActivityResult方法でそれからパスを取得しようとすると、私は次のエラーを取得する:Intent.getData.getPath()はnull値を返します
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1888, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.package.app/com.package.app.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List android.net.Uri.getPathSegments()' on a null object reference
私が言ったように、写真撮影は機能し、添付ファイルとしてメールアプリケーションに送信しても問題はありませんが、そのパスを取得することは問題です。ここに私のOnActivityResult方法のコードだ(私はちょうどある、getPath()の結果がどのように見えるかを確認するためのTextView上のsetText()を入れている):
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK){
if(requestCode == 1){
imageUri = data.getData();
}
}
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
imageUri = data.getData();
path = imageUri.getPath();
tv = (TextView) findViewById(R.id.tvField);
tv.setText(path);
}
}
を最後の3行がなければ、それは完璧に動作します。回線へのエラーポイント:
path = imageUri.getPath();
問題に事前に関心をお寄せいただきありがとうございます。
ここでカメラ要求
ibCam= (ImageButton) findViewById(R.id.ibCam);
ibCam.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
});
結果は、結果のアクティビティを開始するために作成するインテントによって異なります。 – Dharmendra
アクティビティを開始する場所にコードスニペットを含める必要があります。 – MilesWeirdo
'写真を撮って戻しても問題ありません。あなたは写真を返しますか?誰に? – greenapps