PhoneGap (バージョン 2.5) を使い始めたばかりで、QR コード (および最終的には NFC タグ) を読み取ることができる Android アプリを開発しています。QRコードの読み取りにはこのプラグインを使用しています。スキャナーを起動するボタンと、その下に QR コードのコンテンツを表示する p-tag を備えた単純なテスト アプリケーションをセットアップしました。これはスキャナを起動するコードです
scan: function() {
try {
window.plugins.barcodeScanner.scan( function(args) {
console.log("Scanner result: \n" +
"text: " + args.text + "\n" +
"format: " + args.format + "\n" +
"cancelled: " + args.cancelled + "\n");
document.getElementById("info").innerHTML = args.text;
console.log(args);
});
} catch(ex) {
console.log(ex.message);
}
}
コードはほとんどの場合機能しますが、コードが読み取られた後にクラッシュすることがあります (スキャナーはタグをキャプチャし、URL/プレーンテキスト/見つかったものは何でもレポートしますが、アプリケーションに戻ろうとするとクラッシュします)。 . クラッシュの特定のパターンは見つかりませんでした。同じコードがスキャンされることもあれば、クラッシュすることもあります。LogCat からのエラー メッセージは次のとおりです。
03-07 13:46:57.478: E/AndroidRuntime(28325): FATAL EXCEPTION: main
03-07 13:46:57.478: E/AndroidRuntime(28325): java.lang.RuntimeException: Unable to resume activity {com.package.hellophonegap/com.package.hellophonegap.HelloPhonegap}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=195543262, result=-1, data=Intent { act=com.phonegap.plugins.barcodescanner.SCAN flg=0x80000 (has extras) }} to activity {com.package.hellophonegap/com.package.hellophonegap.HelloPhonegap}: java.lang.NullPointerException
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2742)
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2771)
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2235)
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3692)
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.app.ActivityThread.access$700(ActivityThread.java:141)
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1240)
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.os.Handler.dispatchMessage(Handler.java:99)
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.os.Looper.loop(Looper.java:137)
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.app.ActivityThread.main(ActivityThread.java:5041)
03-07 13:46:57.478: E/AndroidRuntime(28325): at java.lang.reflect.Method.invokeNative(Native Method)
03-07 13:46:57.478: E/AndroidRuntime(28325): at java.lang.reflect.Method.invoke(Method.java:511)
03-07 13:46:57.478: E/AndroidRuntime(28325): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-07 13:46:57.478: E/AndroidRuntime(28325): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-07 13:46:57.478: E/AndroidRuntime(28325): at dalvik.system.NativeStart.main(Native Method)
03-07 13:46:57.478: E/AndroidRuntime(28325): Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=195543262, result=-1, data=Intent { act=com.phonegap.plugins.barcodescanner.SCAN flg=0x80000 (has extras) }} to activity {com.package.hellophonegap/com.package.hellophonegap.HelloPhonegap}: java.lang.NullPointerException
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.app.ActivityThread.deliverResults(ActivityThread.java:3319)
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2729)
03-07 13:46:57.478: E/AndroidRuntime(28325): ... 13 more
03-07 13:46:57.478: E/AndroidRuntime(28325): Caused by: java.lang.NullPointerException
03-07 13:46:57.478: E/AndroidRuntime(28325): at org.apache.cordova.DroidGap.onActivityResult(DroidGap.java:849)
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.app.Activity.dispatchActivityResult(Activity.java:5293)
03-07 13:46:57.478: E/AndroidRuntime(28325): at android.app.ActivityThread.deliverResults(ActivityThread.java:3315)
03-07 13:46:57.478: E/AndroidRuntime(28325): ... 14 more
問題は、エラー メッセージの解釈方法やアプリケーションのデバッグ方法がわからないことです。エラーをさらにトラブルシューティングする方法についての指針をいただければ幸いです。