1

Who can help me resolve this bug.

Exception follow:

java.lang.RuntimeException: Unable to resume activity {com.demo.project/com.demo.project.view.main.PersonActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=android:fragment:2, request=998, result=-1, data=null} to activity {com.demo.project/com.demo.project.view.main.PersonActivity}: java.lang.NullPointerException
--------- Stack trace ---------
android.app.ActivityThread.performResumeActivity(ActivityThread.java:2458)
android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2486)
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2000)
android.app.ActivityThread.access$600(ActivityThread.java:128)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4514)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
dalvik.system.NativeStart.main(Native Method)  
java.lang.RuntimeException: Failure delivering result ResultInfo{who=android:fragment:2, request=998, result=-1, data=null} to activity {com.viettel.vinamilk/com.viettel.vinamilk.view.main.SalesPersonActivity}: java.lang.NullPointerException
android.app.ActivityThread.deliverResults(ActivityThread.java:2994)
android.app.ActivityThread.performResumeActivity(ActivityThread.java:2445)
android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2486)
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2000)
android.app.ActivityThread.access$600(ActivityThread.java:128)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:137)
android.app.ActivityThread.main(ActivityThread.java:4514)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:511)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
dalvik.system.NativeStart.main(Native Method)

My project include a main activity and have many Fragments add into activity. When take picture from camera, receive result in onActivityResult(). Add I call present Fragment to continue...

And sometime it happen above exception. I don't know how to resolve this bug.

Code at onAcitivtyResult:-

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    String filePath = "";
    switch (requestCode) {
    case MyActivity.RQ_SALE_TAKE_PHOTO:
        {
            if (resultCode == RESULT_OK) {
                if (data != null && data.getExtras() != null && data.getAction() != null) {
                    Bitmap tempBitmap = null;
                    tempBitmap = (Bitmap) data.getExtras().get("data");
                    MyFragment fragment = (MyFragment) this.getFragmentManager()
                            .findFragmentByTag(MyFragment.TAG);
                    if(fragment != null){
                        fragment.executePicture(data);
                    }
                }
            } else {
                //DO SOMETHING HERE
            }
        }
        break;
    }
}

Can anyone help me to explain the above error, and how to fix this error. TIA.

Huỳnh Ngọc Bang
  • 1,572
  • 1
  • 19
  • 22

1 Answers1

0

Well i had the same problem. Sometimes it takes time to deliver data from camera to your file. If you continue your work before making sure that data is ready this problem can happen! there is a simple way. You can wait for it

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            if(data == null)
                                handler.postDelayed(this, 1000);
                            else {
                                // do actions
                                //condition = true;
                            }
                        }
                    }, 1000); 
nopassport1
  • 1,821
  • 1
  • 25
  • 53