0

我试图获取条形码扫描结果,但有时textview变得null。扫描结果是在加载片段之前得到的,还是其他问题?在onActivityResult()中查看变空

以下是我的崩溃报告:

Fatal Exception: java.lang.RuntimeException: Unable to resume activity {com.example.infinity.ilfms/com.example.infinity.ilfms.views.material_collected.MaterialCollectedActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=135123, result=-1, data=Intent { act=com.google.zxing.client.android.SCAN flg=0x80000 (has extras) }} to activity {com.example.infinity.ilfms/com.example.infinity.ilfms.views.material_collected.MaterialCollectedActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence)' on a null object reference 
     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3294) 
     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3325) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2635) 
     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4313) 
     at android.app.ActivityThread.-wrap15(ActivityThread.java) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) 
     at android.os.Handler.dispatchMessage(Handler.java:111) 
     at android.os.Looper.loop(Looper.java:207) 
     at android.app.ActivityThread.main(ActivityThread.java:5736) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:910) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
Caused by java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=135123, result=-1, data=Intent { act=com.google.zxing.client.android.SCAN flg=0x80000 (has extras) }} to activity {com.example.infinity.ilfms/com.example.infinity.ilfms.views.material_collected.MaterialCollectedActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence)' on a null object reference 
     at android.app.ActivityThread.deliverResults(ActivityThread.java:3925) 
     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3276) 
     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3325) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2635) 
     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4313) 
     at android.app.ActivityThread.-wrap15(ActivityThread.java) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) 
     at android.os.Handler.dispatchMessage(Handler.java:111) 
     at android.os.Looper.loop(Looper.java:207) 
     at android.app.ActivityThread.main(ActivityThread.java:5736) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:910) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence)' on a null object reference 
     at com.example.infinity.ilfms.views.material_collected.MaterialCollectedFragment.refreshViewOnSuccessIfAnyForOthers(MaterialCollectedFragment.java:373) 
     at com.example.infinity.ilfms.views.base_view.fragements.BaseFragment.onActivityResult(BaseFragment.java:134) 
     at android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:164) 
     at android.app.Activity.dispatchActivityResult(Activity.java:6475) 
     at android.app.ActivityThread.deliverResults(ActivityThread.java:3921) 
     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3276) 
     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3325) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2635) 
     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4313) 
     at android.app.ActivityThread.-wrap15(ActivityThread.java) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) 
     at android.os.Handler.dispatchMessage(Handler.java:111) 
     at android.os.Looper.loop(Looper.java:207) 
     at android.app.ActivityThread.main(ActivityThread.java:5736) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:910) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 

这里是我的onActivityResult():

@Override 
    protected void refreshViewOnSuccessIfAnyForOthers(int requestCode, int typeOfImage, Intent data, int resultCode) { 
     super.refreshViewOnSuccessIfAnyForOthers(requestCode, typeOfImage, data, resultCode); 

     if (requestCode == 4051) { 
      if (resultCode == RESULT_OK) { 
       //get the extras that are returned from the intent 
       String contents = data.getStringExtra("SCAN_RESULT"); 
       Logger.logError(LOG_TAG,"Barcode result "+contents); 
       String format = data.getStringExtra("SCAN_RESULT_FORMAT"); 
       if(etRouterCode!=null) { 
        etRouterCode.setText(contents); 
       } 
      } 
     } 
} 
+0

你的'onActivityResult'是怎么样的? –

+0

请将您的活动代码发送至 –

+0

@MuratK。我发布了我的活动代码 –

回答

0

我发现了同样的答案。在这里,当我在捕获条形码后重新创建片段时,片段在创建视图之前接收到数据。 这就是应用程序崩溃的原因。