2

ユーザーがアプリから Zxing バーコード スキャナーを起動した場合 (インテント)、戻るボタンを押した場合、どうすればキャッチできますか? - 「申し訳ありませんが、MyApp は強制終了されました」と表示されます (多かれ少なかれ、私の言語は英語ではないため)。今私が持っています:

if (scanResult != null) {
          intent.putExtra("com.tajchert.kolejrogowska.SCAN.SCAN_MODE", "QR_CODE_MODE");
          String contents = intent.getStringExtra("SCAN_RESULT");
          whatToDo(contents);
      }
      else{
          finish();
      }

else{}ブロックなしでも同じです。

編集: ログ:

11-25 00:16:33.738: E/AndroidRuntime(21969): FATAL EXCEPTION: main
11-25 00:16:33.738: E/AndroidRuntime(21969): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=49374, result=0, data=null} to activity {com.tajchert.kolejrogowska/com.tajchert.kolejrogowska.Kody}: java.lang.NullPointerException
11-25 00:16:33.738: E/AndroidRuntime(21969):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3515)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at android.app.ActivityThread.access$2800(ActivityThread.java:125)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at android.os.Looper.loop(Looper.java:123)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at android.app.ActivityThread.main(ActivityThread.java:4627)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at java.lang.reflect.Method.invokeNative(Native Method)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at java.lang.reflect.Method.invoke(Method.java:521)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at dalvik.system.NativeStart.main(Native Method)
11-25 00:16:33.738: E/AndroidRuntime(21969): Caused by: java.lang.NullPointerException
11-25 00:16:33.738: E/AndroidRuntime(21969):    at com.tajchert.kolejrogowska.Kody.onActivityResult(Kody.java:77)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at android.app.Activity.dispatchActivityResult(Activity.java:3890)
11-25 00:16:33.738: E/AndroidRuntime(21969):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3511)
11-25 00:16:33.738: E/AndroidRuntime(21969):    ... 11 more
4

1 に答える 1

4

次のように入力します。

if (scanResult != null) {
    String contents = scanResult.getContents();
    if(contents != null)
        whatToDo(contents);
    else
        finish();
}
于 2012-11-24T23:59:56.963 に答える