2012-12-19 19 views
5

एंड्रॉयड प्लेटफार्म 4.0.4 OpenCV 2.4.3यादृच्छिक क्रम में गतिविधि फिर से शुरू करने के लिए

मैं opencv का उपयोग कर इसे प्रसंस्करण कैमरे से एक स्नैपशॉट प्राप्त करने के लिए कोशिश कर रहा हूँ और उसके बाद में असमर्थ! लेकिन कभी कभी (यादृच्छिक क्रम में) मैं निम्नलिखित अपवाद

9 18:54:33.659: E/AndroidRuntime(16625): FATAL EXCEPTION: main 
12-19 18:54:33.659: E/AndroidRuntime(16625): java.lang.RuntimeException: Unable to resume activity {com.example.superemr/com.example.superemr.MainActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=11, result=-1, data=Intent { act=inline-data dat=file:///mnt/sdcard/Pictures/IDSMART/IDS-1607435583.jpg typ=image/jpeg (has extras) }} to activity {com.example.superemr/com.example.superemr.MainActivity}: java.lang.NullPointerException 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2464) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2492) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1997) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3371) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.access$700(ActivityThread.java:127) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1162) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.os.Looper.loop(Looper.java:137) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.main(ActivityThread.java:4441) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at java.lang.reflect.Method.invokeNative(Native Method) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at java.lang.reflect.Method.invoke(Method.java:511) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at dalvik.system.NativeStart.main(Native Method) 
12-19 18:54:33.659: E/AndroidRuntime(16625): Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=11, result=-1, data=Intent { act=inline-data dat=file:///mnt/sdcard/Pictures/IDSMART/IDS-1607435583.jpg typ=image/jpeg (has extras) }} to activity {com.example.superemr/com.example.superemr.MainActivity}: java.lang.NullPointerException 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.deliverResults(ActivityThread.java:3000) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2451) 
12-19 18:54:33.659: E/AndroidRuntime(16625): ... 13 more 
12-19 18:54:33.659: E/AndroidRuntime(16625): Caused by: java.lang.NullPointerException 
12-19 18:54:33.659: E/AndroidRuntime(16625): at com.example.superemr.MainActivity.onActivityResult(MainActivity.java:88) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.Activity.dispatchActivityResult(Activity.java:4649) 
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.deliverResults(ActivityThread.java:2996) 
12-19 18:54:33.659: E/AndroidRuntime(16625): ... 14 more 

जब मैं समस्या डिबग करने के लिए आम तौर पर कार्यक्रम सफल हो, लेकिन कभी कभी कोशिश हो रही है और इससे पहले कि कहा जाता हो onResume एक अपवाद फेंक दिया जाता है!

public void onResume() 
{ 
    super.onResume(); 
    if(!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback)) 
     Toast.makeText(this, "cannot connect to opencv ",Toast.LENGTH_SHORT).show(); 
} 


public void cap(View view) 
{ 
    Intent camInt = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     List<ResolveInfo> aa = getPackageManager().queryIntentActivities(
     camInt, PackageManager.MATCH_DEFAULT_ONLY); 

     if (aa != null && aa.size() > 0) { 
     File dir = new File(
     android.os.Environment 
      .getExternalStoragePublicDirectory(android.os.Environment.DIRECTORY_PICTURES), 
     "IDSMART"); 

     if (!dir.exists()) { 
     boolean result = dir.mkdirs(); 
     Log.d("Creating Dirs Result:", 
      result ? "Create have been Done :)" 
      : "Create have not been done :("); 
     } 
     Random r = new Random(); 
     file = new File(dir, String.format("IDS%s.jpg", r.nextInt())); 
     camInt.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); 
     startActivityForResult(camInt, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 
     } 
} 

मजबूत पाठ

+1

समस्या अपने onActivityResult में है: 'com.example.superemr.MainActivity.onActivityResult (MainActivity.java:88)' में, बस nulls लिए जाँच करें। – dmon

+1

यदि आपको सहायता चाहिए तो आपको अपना 'एक्टिविटी रीसेट' कोड पोस्ट करना चाहिए। – toadzky

उत्तर

0

अपने onActivityResult में, जाँच कृपया अगर डेटा (आशय) रिक्त है।
यदि आपको डेटा तक पहुंचने का प्रयास करते समय NullPointerException मिल रहा है।
यदि स्थिति हो तो निम्न का प्रयास करें।

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

     if((resultCode == Activity.RESULT_OK) && (data != null)) 
     { 
       // Do whatever you want here. 

     } 
} 
संबंधित मुद्दे