2013-08-21 125 views
-1

需要此帮助。看了很多帖子,但无法弄清楚。有人能帮助我吗?拍摄照片后应用程序崩溃

错误 - [{ResultInfo谁= NULL,请求= 2,结果= -1,数据=意向{ ACT =直列数据DAT =内容://媒体/外部/图像/媒体/ 26698(有 演员)}}]

public int GET_CAM_IMG=2; 
public int GET_GAL_IMG=1; 

img1.setOnClickListener(new OnClickListener() { 

    public void onClick(View v){ 
    CharSequence[] names = { "From Gallery", "From Camera" }; 
    new AlertDialog.Builder(context) 
      .setTitle("Select an option for updating your Profile Picture") 
      .setItems(names, new DialogInterface.OnClickListener() { 

      @Override 
       public void onClick(DialogInterface dialog, int pos) { 
        // TODO Auto-generated method stub 
        if (pos == 0) { 

         Intent i = new Intent(
           Intent.ACTION_PICK, 
         android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);  


         startActivityForResult(i, GET_GAL_IMG); 


        } else { 


         Intent i = new Intent(
           android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

        /** 
         i.putExtra("crop", "true"); 
         i.putExtra("aspectX", 0); 
         i.putExtra("aspectY", 0); 
         i.putExtra("outputX", 200); 
         i.putExtra("outputY", 150);**/ 



         startActivityForResult(i, GET_CAM_IMG); 

        }}} 


      ) 
      .setNegativeButton(android.R.string.cancel, 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, 
           int which) { 
         } 
        }).create().show(); 
    } 
    });} 








    @Override 
public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 
    switch (requestCode) { 

    case 2://Camera 
     Log.d("take","pic"); 
     if (resultCode == -1) { 
      Uri selectimage=intent.getData(); 
      Log.d("take","pic"); 
      img1.setImageURI(selectimage); 




     } 
     break; 
    case 3://Selecting from Gallery 
     Log.d("view","pic"); 
     if (resultCode == -1) { 
      Bitmap bmp_image = null; 
       Bundle extras = intent.getExtras(); 
       bmp_image = (Bitmap) extras.get("data"); 



       img1.setImageBitmap(bmp_image); 

     } 
     break; 
    } 
} 

logcat的输出:

08-21 12:46:46.269: W/dalvikvm(6566): threadid=1: thread exiting with uncaught exception (group=0x41096438) 
08-21 12:46:46.299: E/AndroidRuntime(6566): FATAL EXCEPTION: main 
08-21 12:46:46.299: E/AndroidRuntime(6566): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { act=inline-data dat=content://media/external/images/media/26702 (has extras) }} to activity {com.inspectreport6784/com.inspectreport6784.NewInspection}: java.lang.NullPointerException 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at android.app.ActivityThread.deliverResults(ActivityThread.java:3208) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at android.app.ActivityThread.handleSendResult(ActivityThread.java:3251) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at android.app.ActivityThread.access$1200(ActivityThread.java:143) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at android.os.Looper.loop(Looper.java:137) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at android.app.ActivityThread.main(ActivityThread.java:4961) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at java.lang.reflect.Method.invoke(Method.java:511) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at dalvik.system.NativeStart.main(Native Method) 
08-21 12:46:46.299: E/AndroidRuntime(6566): Caused by: java.lang.NullPointerException 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at com.inspectreport6784.NewInspection.onActivityResult(NewInspection.java:169) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at android.app.Activity.dispatchActivityResult(Activity.java:5363) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  at android.app.ActivityThread.deliverResults(ActivityThread.java:3204) 
08-21 12:46:46.299: E/AndroidRuntime(6566):  ... 11 more 
+0

我们需要来自logcat的堆栈跟踪来提供帮助。 – Simon

回答

0

你有NullPointerException在线169。不知道是什么行是...

我们知道你的代码块是:

Uri selectimage=intent.getData(); 
Log.d("take","pic"); 
img1.setImageURI(selectimage); 

因为你ResultInfo显示request=2, result=-1。这意味着你的空指针在那里。

最可能的原因是img1为空。我看到你在上面使用它,但是它在后面的范围内是未知的。不知道如何或何时初始化,很难说。

这里没有太多可以发生的事情。唯一的另一种可能性是intent为空,但我不算太多。你的ResultInfo清楚地显示回来的意图。


未来,您可以自己在logcat中找到这些东西。只要寻找类似:

Caused by: java.lang.NullPointerException 
    at com.inspectreport6784.NewInspection.onActivityResult(NewInspection.java:169) 

对于简单的空指针,它很容易缩小。它为您提供文件,类,方法和行。

+0

img1.setImageURI(selectimage);是第169行。我怎样才能解决它。新的这个Java所以将欣赏所有的帮助 – Ahsan

+0

然后'img1'为空。很可能它超出了范围。尝试将其设为班级成员。您可能还想阅读Java中的范围。 – Geobits

+0

哎,它的工作,我把ImageView的IMG1 =(ImageView的)findViewById(R.id.img1);右上方img1.setUmageURI(选择图片);现在我必须找出方向。它在方向改变时崩溃,但至少我得到图片。你的空指针帮助了我。直到现在还不知道它是什么 – Ahsan

相关问题