Fragment:java.lang.RuntimeException:无法传递结果ResultInfo

问题描述 投票:0回答:1

谁可以帮助我解决此错误。

例外跟随:

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)

我的项目包括一个主要活动,并且有许多片段添加到活动中。从相机拍照时,在onActivityResult()中接收结果。添加我称当前片段继续...

并且有时它发生在异常之上。我不知道如何解决此错误。

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;
    }
}

[谁能帮助我解释以上错误,以及如何解决此错误。TIA。

android nullpointerexception fragment runtimeexception onactivityresult
1个回答
0
投票

嗯,我有同样的问题。有时需要花费一些时间将数据从相机传输到文件。如果在确保数据准备就绪之前继续工作,则可能会发生此问题!有一个简单的方法。你可以等它

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); 
© www.soinside.com 2019 - 2024. All rights reserved.