2014-02-13 42 views
7

在我的應用程序中,我使用android設備相機捕捉我的圖像。在一些設備能正常工作,但不是全部,我只是測試它LG Nexus 5的E960,之後我抓住它總是最終沒有能夠挽救結果墜毀圖像,這是我的代碼:使用安卓相機捕獲圖像後的空指針5

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    startActivityForResult(cameraIntent, 1); 



    protected void onActivityResult(int requestCode, int resultCode, 
     Intent returnimage) { 
    super.onActivityResult(requestCode, resultCode, returnimage); 

    switch (requestCode) { 
    case 1: 
     if (resultCode == RESULT_OK) { 

      Uri selectedImage = returnimage.getData(); 

      String stringUri; 
      stringUri = selectedImage.toString(); 
      Intent i1 = new Intent(MainActivity.this, Secondpage.class); 
      i1.putExtra("Stringuri",stringUri); 
      startActivity(i1); 


     } 
     break; 

而且我logcat的是:

 java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, 
    request=1, result=-1, data=Intent { act=inline-data (has extras) }} to activity 
    {com.photostikers/com.photostikers.MainActivity}: java.lang.NullPointerException 
    02-13 12:27:54.315: E/AndroidRuntime(28759): at 
    android.app.ActivityThread.deliverResults(ActivityThread.java:3365) 
    02-13 12:27:54.315: E/AndroidRuntime(28759): at 
    android.app.ActivityThread.performResumeActivity(ActivityThread.java:2775) 
    02-13 12:27:54.315: E/AndroidRuntime(28759): ... 12 more 
    02-13 12:27:54.315: E/AndroidRuntime(28759): Caused by: java.lang.NullPointerException 
    02-13 12:27:54.315: E/AndroidRuntime(28759): at 
    com.photostikers.MainActivity.onActivityResult(MainActivity.java:335) 
    02-13 12:27:54.315: E/AndroidRuntime(28759): at 
    android.app.Activity.dispatchActivityResult(Activity.java:5423) 
    02-13 12:27:54.315: E/AndroidRuntime(28759): at 
    android.app.ActivityThread.deliverResults(ActivityThread.java:3361) 
    02-13 12:27:54.315: E/AndroidRuntime(28759): ... 13 more 
+0

Android開發者文檔什麼是MainActivity.java線335得到像

Bitmap bitImage = getIntent().getParcelableExtra("bitmap"); your_image+_view.setImageBitmap(bitImage); 

轉到圖像? –

回答

3

使用像

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
     Bundle extras = data.getExtras(); 
     Bitmap imageBitmap = (Bitmap) extras.get("data"); 
     Intent i1 = new Intent(MainActivity.this, Secondpage.class); 
     i1.putExtra("bitmap",imageBitmap); 
     startActivity(i1); 
    } 
} 

而且在Secondpage Activity

通過對Get the Thumbnail

+0

此代碼是否可以在較低版本下正常工作? –

1

它接縫是nexus5中的常見問題。

取而代之的是:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(cameraIntent, 1); 

試試這個:

Uri mPhotoUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
     new ContentValues()); 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, mPhotoUri); 
startActivityForResult(intent,CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE_CONTENT_RESOLVER); 

看看這個: http://cssmay.com/question/tag/tag-camera,我認爲它可以幫助你很多。

+0

感謝dyna的回覆,以及在添加此代碼後,在activityonult中應該做什麼以及什麼是mphotouri ... –

+0

Uri是您要放置圖像的URI。我會更新答案 – Dyna

+0

也請清除在執行此代碼後結果中的活動應該做什麼..例如 –