Java 不拍照时出现nullpointerexception

Java 不拍照时出现nullpointerexception,java,android,nullpointerexception,Java,Android,Nullpointerexception,我有一个应用程序,在一个活动中我正在拍照(除其他外) 现在,当我按下按钮拍照时,它会打开相机。如果我按下后退按钮或取消按钮(不拍照),它会崩溃并发出警告 空指针 及 未能传递结果ResultInfo 在这方面: Bitmap photo = (Bitmap) data.getExtras().get("data"); 我使用: protected void onActivityResult(int requestCode, int resultCode, Intent data) {

我有一个应用程序,在一个活动中我正在拍照(除其他外)

现在,当我按下按钮拍照时,它会打开相机。如果我按下后退按钮或取消按钮(不拍照),它会崩溃并发出警告

空指针

未能传递结果ResultInfo

在这方面:

Bitmap photo = (Bitmap) data.getExtras().get("data");
我使用:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

                      if(requestCode == CAMERA_REQUEST){      


                            Bitmap photo = (Bitmap) data.getExtras().get("data");
                            imageView.setImageBitmap(photo);
                            ByteArrayOutputStream stream = new ByteArrayOutputStream();
                            photo.compress(Bitmap.CompressFormat.PNG, 100, stream);
                            blobvalue = stream.toByteArray();

                             Bundle extras = new Bundle();
                             Intent k=new Intent(this,MainActivity.class);  
                             extras.putParcelable("Bitmap", photo);
                             k.putExtras(extras);

                      }

                      if (requestCode == RESULT_CANCELED) {    

                      }        


           }
在我的适配器中:

ImageView myImage=(ImageView) convertView.findViewById(R.id.myimage);

            final Bitmap image;
            if(theItems.getImagemyItems() != null)
            {
                byte []temp = theItems.getImagemyItems();
                image = BitmapFactory.decodeByteArray(temp, 0, temp.length);
                myImage.setImageBitmap(image);
            }
            else
            {
                image = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher);
                myImage.setImageBitmap(image);
            }
就我所记得的,上面提到的都是为了这个目的。
我不知道还能做什么。

您刚刚测试了请求代码,但还没有resultCode,因此我建议您检查resultCode用户是否已捕获图像或取消捕获

尝试:


您只需在您的
onActivityResult
中进行检查,当用户成功拍照时,案例
结果\u OK
,当您按下hardware back(硬件后退)按钮并想返回活动时,案例
结果\u取消

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
   if(requestCode == CAMERA_REQUEST){      
      if(resultCode == RESULT_OK){
      // your code comes here
      }
      if(resultCode == RESULT_CANCELED){  
      }
   }
}

你可以发布stacktrace。你不是在测试resultCode以了解用户是否按下了back。@George请不要评论与答案无关的内容。:好的,对于结果,我应该将其留空吗?@George这取决于你的要求,如果用户按下back键时你不想做任何事情,那么就不要写任何东西。
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
   if(requestCode == CAMERA_REQUEST){      
      if(resultCode == RESULT_OK){
      // your code comes here
      }
      if(resultCode == RESULT_CANCELED){  
      }
   }
}