0

これは変です。次のコードは数週間前に機能していましたが、現在は機能していません。

private void onClick()
{
   Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
   mOriginalUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(),"original" + String.valueOf(System.currentTimeMillis()) + ".jpg"));
   Log.d("path", mOriginalUri.getPath());
   intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mOriginalUri);
   intent.putExtra("return-data", true);
   startActivityForResult(intent, CAMERA_REQUEST);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) 
{
   switch( requestCode )
   {
   case CAMERA_REQUEST:
       if(resultCode == MainActivity.RESULT_OK)
          Log.d("path", mOriginalUri.getPath());
       break;
   }
}

どういうわけか、カメラキャプチャアクティビティが私のURIを追跡できなくなり、nullに設定されています。onActivityResultにパスを出力すると、NPEが発生します。どうすればこれを解決できますか?GalaxyNexusでAndroid4.1.2API16を使用しています。

4

1 に答える 1

0

カメラが時々画像を返し、時にはnullを返すという同様の問題がありました。イメージをファイルに書き込むのと同じセットアップがありました。

onClick() メソッドではなく、onCreate() からカメラ インテントを開始しました。

インテントの画面の向きをロックすると(縦向きですが、それは問題ではありません)、問題はなくなりました。それを試してみて、それが違いを生んだかどうかを報告したいかもしれません.

これも関連している可能性があります: カメラ アクティビティにより、画面の向きが変わると uri が null になります

于 2013-04-09T03:17:50.807 に答える