2016-07-30 20 views
0

我的意圖活動開始代碼來打開相機是遵循不能得到像束數據onActivityResult

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) { 
     getActivity().startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
    } 

注: - 此功能是一個類擴展dialogfragment

OnActivityResult方法,這是在活動類,是如下

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    Log.d("sdf",""+data); 
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
     mimageView = (ImageView) findViewById(R.id.profileimageView4); 
     Bundle extras = data.getExtras(); 
     Bitmap imageBitmap = (Bitmap) extras.get("data"); 
     //mimageView.setImageBitmap(imageBitmap); 
    } 
} 

在日誌中表示的誤差如下

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { dat=content://media/external/images/media/22615 flg=0x1 }} to activity {www.vyrazu.com.purpleknights/www.vyrazu.com.purpleknights.Profile}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.os.Bundle.get(java.lang.String)' on a null object reference 

這段代碼有什麼問題,感謝大家的時間。

+0

你的'startActivityForResult()'正在使用'REQUEST_IMAGE_CAPTURE'。你的'onActivityResult()'使用'REQUEST_IMAGE_CAPTURE_FROM_GALLERY'。這些不一樣。因此,你的'onActivityResult()'代碼不會從'startActivityForResult()'處理這個特定的結果。 – CommonsWare

+0

'Bundle extras = data.getExtras();'。沒有額外功能,所以'extras'將爲空。當它爲空時不要使用「額外」。現在你有一個'NullPointerException'在日誌中清晰可見。你可能已經格式化了這個字符串,因爲現在你迫使我們無休止地滾動。 – greenapps

+0

@CommonsWare感謝您的觀察。但是這是從圖庫部分挑選圖像。基本上都是相同的。我正在編輯問題.sorry – Debojyoti

回答

0

從我所看到的,你的代碼看起來很好。但是,它依賴於ACTION_IMAGE_CAPTUREmany camera apps have bugs。您可能希望嘗試使用其他相機應用的應用,並查看結果。