Я только что начал с PhoneGap (версия 2.5) и разрабатываю приложение для Android, которое сможет читать QR-код (и, в конечном итоге, теги NFC). Я использую плагин this для чтения QR-кодов. Я установил простое тестовое приложение с кнопкой, которая запускает сканер и p-тег под ним, который отобразит содержимое QR-кода. Это код, который запускает сканерПриложение иногда вылетает при чтении штрих-кодов
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
Проблема в том, что я не знаю, как интерпретировать сообщения об ошибках или как отлаживать приложение. Любые указатели на то, как я мог бы еще больше устранить эту ошибку, будут высоко оценены.
Любые удачи в этом? У меня одинаковая проблема. Я использую тот же плагин BarcodeScanner в приложении Android PhoneGap на ОС Android 4.1.1 и, похоже, получаю почти одинаковые сообщения об ошибках. Я получил ошибки 3 раза подряд и до сих пор не испытывал ошибок - и я не коснулся кода сканирования штрих-кода - ни моего кода, который вызывает его, ни исходного кода Java для него, поэтому я не знаю, Я знаю, что происходит. –
Странно, что вы говорите, что это будет только время от времени. Для меня я никогда не испытывал этой ошибки раньше, и вдруг внезапно сканер штрих-кода не будет работать вообще, ничего не меняя. Я попробовал очистить свое решение, перезагрузив свой телефон и убедившись, что мои настройки телефона были обычным делом ... но до сих пор мне не повезло. Это очень раздражающая тайна! –
Итак, я просто попробовал запустить приложение на HTC One X (гораздо лучший телефон с точки зрения технической спецификации) и нашел, что он работает отлично. Возможно ли, что проблема с производительностью? Возможно, приложение использует слишком много памяти для HTC Desire, где я получаю ошибки? Хотя я не совсем понимаю, как это могло быть так, потому что вчера оно работало для меня - и я больше ничего не добавлял в мое приложение (в последние дни я добавил больше кода, но я ничего не сделал усилит нагрузку на основную память телефона). –