簡體   English   中英

Android-> onActivityResult->圖像處理->某些設備上的空指針異常

[英]Android -> onActivityResult-> processing of image -> null pointer exception on some devices

我注意到,我的應用在onActivityResult方法中的某些設備上崩潰了。

我試圖解決這個問題,但是沒有運氣,沒有人知道,什么會引起這個問題? 在以下方法中,我在某些設備上(例如HUAWEI ASCEND P6)總是出現IO異常。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
        try {
            Log.i(GlobalApplication.APP_LOG_NAMESPACE, "Trying to process image");
            GlobalApplication globalAppClass = ((GlobalApplication) getApplicationContext());
            AppHelper helper = new AppHelper();
            Bundle extras = data.getExtras();
            Bitmap imageBitmap = (Bitmap) extras.get("data");
            Uri imageUri = data.getData();
            Bitmap bitmap;
            Bitmap resizedBitmap;
            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
            String imageFileName = "DAMAGE_" + globalAppClass.getEanCode() + "_" + timeStamp + ".jpg";
            String dirname =  "smartt/"+globalAppClass.getEanCode();

            bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
            resizedBitmap = helper.getResizedBitmap(bitmap, 768, 1024);
            helper.createDirectoryAndSaveImage(resizedBitmap, imageFileName, dirname);
            // place thumbnail into image view
            //mImageView.setImageBitmap(imageBitmap);

            TextView photoCountTv = (TextView)findViewById(R.id.damageReportTakenPhotosCountTv);
            photoCountTv.setText(R.string.foto_attached);
            photoCountTv.setTextColor(getResources().getColor(R.color.green));

            TextView dataPassingTv = (TextView)findViewById(R.id.damageReportPassingTitle);
            dataPassingTv.setText(R.string.data_passing);
            dataPassingTv.setTextColor(getResources().getColor(R.color.green));

        } catch (FileNotFoundException e) {
            Log.e(GlobalApplication.APP_LOG_NAMESPACE, "onActivityResult method cannot be processed, file not found", e);
            e.printStackTrace();
        } catch (IOException e) {
            Log.e(GlobalApplication.APP_LOG_NAMESPACE, "onActivityResult method cannot be processed, IOE Exception", e);
            e.printStackTrace();
        } catch (Exception e) {
            Log.e(GlobalApplication.APP_LOG_NAMESPACE, "onActivityResult method cannot be processed, IOE Exception", e);
            e.printStackTrace();
        }
    }
}

感謝您的任何想法。

我會檢查您所有的資源是否都到位。 請記住,IDE通常會為不同的屏幕尺寸(例如drawable-hdpi,drawable-xhdpi等)創建備用目錄。 檢查在配置失敗的情況下使用哪種類型的屏幕。

您也可以在這里查看: http : //developer.android.com/guide/topics/resources/providing-resources.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM