2010-12-11 8 views
0

カメラアクティビティを呼び出すときにIntent.putExtra()を使用しようとしたときに発生したNULLポインタ例外を解決する方法。Androidでのカメラキャプチャ中にnullポインタ例外を解決する方法

public class ImageCaptureActivity extends Activity { 

/** Called when the activity is first created. */ 

@Override 

public void onCreate(Bundle savedInstanceState) { 

super.onCreate(savedInstanceState); 

setContentView(R.layout.main); 

Uri mImageCaptureUri = Uri.fromFile(new File("/sdcard/gift2.JPG")); 

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri); 
startActivityForResult(intent, 0); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
if (requestCode == 0 && resultCode == Activity.RESULT_OK) { <br>    Toast.makeText(getBaseContext(), "ImageCaptured",Toast.LENGTH_LONG).show();  
Uri chosenImageUri = data.getData();  
Bitmap mBitmap = null;  
try {  
mBitmap = Media.getBitmap(this.getContentResolver(),chosenImageUri);  
} catch (FileNotFoundException e) {  
// TODO Auto-generated catch block 
e.printStackTrace(); 
} catch (IOException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
}  
ImageView img = new ImageView(this);   
img.setImageBitmap(mBitmap);  
setContentView(img); 
} 
} 
} 

私はこのクラスを実行します。カメラをカメラを通して画像をキャプチャし、「OK」私は声明でnullポインタ例外を取得しています

"Uri chosenImageUri = data.getData();

+2

関連コードと例外の出力またはスタックトレースを投稿してください。それは私たちがあなたを助けることをはるかに簡単にします。 また、NULLポインタ例外は、初期化されていない変数を使用しようとするときに最も一般的に発生します。 – DGH

+0

私はコードを更新しました。また、ヌルポインタ例外が発生している行についても言及しました。誰もがこの問題を整理するのに役立つことができます –

答えて

0

をクリックした後、アプリケーションは、2.2バージョンとエミュレータでは動作しません。2.1以下で試してみてください。その作業罰金。

0

は....あなたの問題を解決するための画像ビュー上のセットの前に画像のサイズを変更し

公共ビットマップgetResizedBitmap(ビットマップBM、int型newHeight、int型newWidth){

int width = bm.getWidth(); 

int height = bm.getHeight(); 
float scaleWidth = ((float) newWidth)/width; 

float scaleHeight = ((float) newHeight)/height; 

Matrix matrix = new Matrix();`enter code here` 
// RESIZE THE BIT MAP 
matrix.postScale(scaleWidth, scaleHeight); 

// RECREATE THE NEW BITMAP 
Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, 
     matrix, false); 

return resizedBitmap; 

関連する問題