2012-03-21 10 views
1

これは、パスを表示する方法が違っているにもかかわらず、アプリケーションがクラッシュするため、カメラで保存された画像を保存する標準的な方法です。 と私はアンドロイドのプログラミングに私はちょうどいくつかのガイダンスが必要新しいです。 コードを確認してください:保存された画像のパスを取得するとクラッシュする

Javaコード:

@Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      File imagesFolder = new File(Environment.getExternalStorageDirectory(), "My Images"); 
      imagesFolder.mkdirs(); 
      File image = new File(imagesFolder, "img01"); 
      uriSavedImage = Uri.fromFile(image); 
      File f = new File (uriSavedImage.getPath());// <--------- 
      //imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); 
      imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, f.getPath()); // <--------- 
      startActivityForResult(imageIntent,CAMERA_REQUEST_CODE); 
     } 
    }); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if ((requestCode == CAMERA_REQUEST_CODE) && (resultCode == RESULT_OK)) { 

      Toast.makeText(getApplicationContext(),// <--------- 
        " "+data.getData(), 
        Toast.LENGTH_SHORT).show(); 
+0

あなたはここでスタックトレースを貼り付けることができますか? – Triode

答えて

0

あなたは(あなたがスタックトレースにNullPointerExceptionが見ることができる)convertImageUriToFileメソッドにgetParent()を渡すので、それがクラッシュ。 android docsによるとgetParent()は、アクティビティが埋め込みアクティビティでない場合はnullを返します。あなたはおそらくそうではありません。

代わりにFile f = convertImageUriToFile(uriSavedImage, this);を使用してください。

もう1つのエラーの場合、imageUriはnullです。これは非常に可能な説明と解決策についてはaswerを参照してください。

Moroverは、あなたのimageUriは、 "ファイル://" であるタイプのURIではなく、 "コンテンツ://"、それからのパスを取得する代わりに、あなたのconvertImageUriToFIle()方法の

new File(uri.getPath()); 

を使用type.To。私はこのメソッドが "content://"型のurisに対してのみ機能すると思います。

実際に、あなたはあなた自身を作ったURIからファイルパスを取得する必要はありません、あなたはラインでそのパスを持っている:

File image = new File(imagesFolder, "img01"); 
+0

'Toast.makeText(getApplicationContext()、\t \t \t \t "「+ convertImageUriToFile(uriSavedImage、この).getAbsolutePath()、 \t \t \t \t Toast.LENGTH_SHORT).SHOW(); '前述のようにパスを表示しようとしましたが、まだアプリケーションがクラッシュします – Androelpha

+0

ヘルプが必要な場合は、スタックトレースを提供してください。 –

+0

ほんの一瞬 – Androelpha

関連する問題