2011-04-13 4 views
0

Je veux utiliser ZXing pour décoder un code-barres dans mon application Android. J'utilise Phonegap pour construire l'application. Maintenant, je veux intégrer ZXing pour scanner un code à barres et gérer le résultat dans mon application. J'utilise Android 2.1 - update1 SDK.ZXing intégré dans Android App (y compris PhoneGap)

D'abord, j'ai intégré les classes suivantes dans mon application:

  • IntentIntegrator.java
  • IntentResult.java

Puis j'ai créé une activité appelée "Scanactivity" avec le contenu suivant:

import android.app.Activity; 
import android.content.Intent; 
import com.google.zxing.integration.android.IntentIntegrator; 
import com.google.zxing.integration.android.IntentResult; 
public class ScanActivity extends Activity { 
    public void scanCode() { 
    IntentIntegrator.initiateScan(ScanActivity.this); 
    } 
    public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
    if (scanResult != null) { 
     // handle scan result 
    } 
    // else continue with any other code you need in the method 
    } 
} 

Dans la vue j'ai placé un bouton, qui appelle le s Méthode canCode() en appuyant sur. J'ai installé l'application "Barcode Scanner (ZXing)" sur le périphérique cible pour utiliser la fonction d'intention. Si j'appuie sur le bouton de numérisation dans mon application, l'application se bloque et se ferme. Quelle est mon erreur?

Voici le logcat:

04-13 10:20:46.636: WARN/dalvikvm(2525): JNI WARNING: DeleteLocalRef(0x44caf3c0) failed to find entry (valid=1) 
04-13 10:20:46.636: WARN/dalvikvm(2525): JNI WARNING: DeleteLocalRef(0x44caf3c0) failed to find entry (valid=1) 
04-13 10:20:46.636: ERROR/dalvikvm(2525): Class lookup Landroid/webkit/WebHistoryItem; attemped while exception Ljava/lang/NullPointerException; pending 
04-13 10:20:46.636: INFO/dalvikvm(2525): DALVIK THREADS: 
04-13 10:20:46.636: INFO/dalvikvm(2525): "main" prio=5 tid=3 WAIT 
04-13 10:20:46.636: INFO/dalvikvm(2525): | group="main" sCount=0 dsCount=0 s=N obj=0x4001e250 self=0xbe30 
04-13 10:20:46.636: INFO/dalvikvm(2525): | sysTid=2525 nice=0 sched=0/0 cgrp=unknown handle=-1344001356 
04-13 10:20:46.636: INFO/dalvikvm(2525): at java.lang.Object.wait(Native Method) 
04-13 10:20:46.636: INFO/dalvikvm(2525): - waiting on <0x2488a8> (a android.os.MessageQueue) 
04-13 10:20:46.636: INFO/dalvikvm(2525): at java.lang.Object.wait(Object.java:288) 
04-13 10:20:46.636: INFO/dalvikvm(2525): at android.os.MessageQueue.next(MessageQueue.java:148) 
04-13 10:20:46.636: INFO/dalvikvm(2525): at android.os.Looper.loop(Looper.java:110) 
04-13 10:20:46.636: INFO/dalvikvm(2525): at android.app.ActivityThread.main(ActivityThread.java:4363) 
04-13 10:20:46.636: INFO/dalvikvm(2525): at java.lang.reflect.Method.invokeNative(Native Method) 
04-13 10:20:46.636: INFO/dalvikvm(2525): at java.lang.reflect.Method.invoke(Method.java:521) 
04-13 10:20:46.636: INFO/dalvikvm(2525): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
04-13 10:20:46.636: INFO/dalvikvm(2525): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
04-13 10:20:46.636: INFO/dalvikvm(2525): at dalvik.system.NativeStart.main(Native Method) 
04-13 10:20:46.646: INFO/dalvikvm(2525): "http3" prio=5 tid=31 WAIT 
04-13 10:20:46.646: INFO/dalvikvm(2525): | group="main" sCount=0 dsCount=0 s=N obj=0x44c970a8 self=0x296f40 
04-13 10:20:46.646: INFO/dalvikvm(2525): | sysTid=2544 nice=1 sched=0/0 cgrp=unknown handle=2715736 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Object.wait(Native Method) 
04-13 10:20:46.646: INFO/dalvikvm(2525): - waiting on <0x28cff0> (a android.net.http.RequestQueue) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Object.wait(Object.java:288) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at android.net.http.ConnectionThread.run(ConnectionThread.java:98) 
04-13 10:20:46.646: INFO/dalvikvm(2525): "http2" prio=5 tid=29 WAIT 
04-13 10:20:46.646: INFO/dalvikvm(2525): | group="main" sCount=0 dsCount=0 s=N obj=0x44c96e58 self=0x294f00 
04-13 10:20:46.646: INFO/dalvikvm(2525): | sysTid=2543 nice=1 sched=0/0 cgrp=unknown handle=2707480 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Object.wait(Native Method) 
04-13 10:20:46.646: INFO/dalvikvm(2525): - waiting on <0x28cff0> (a android.net.http.RequestQueue) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Object.wait(Object.java:288) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at android.net.http.ConnectionThread.run(ConnectionThread.java:98) 
04-13 10:20:46.646: INFO/dalvikvm(2525): "http1" prio=5 tid=27 WAIT 
04-13 10:20:46.646: INFO/dalvikvm(2525): | group="main" sCount=0 dsCount=0 s=N obj=0x44c96ba0 self=0x294cf8 
04-13 10:20:46.646: INFO/dalvikvm(2525): | sysTid=2542 nice=1 sched=0/0 cgrp=unknown handle=2706960 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Object.wait(Native Method) 
04-13 10:20:46.646: INFO/dalvikvm(2525): - waiting on <0x28cff0> (a android.net.http.RequestQueue) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Object.wait(Object.java:288) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at android.net.http.ConnectionThread.run(ConnectionThread.java:98) 
04-13 10:20:46.646: INFO/dalvikvm(2525): "http0" prio=5 tid=25 WAIT 
04-13 10:20:46.646: INFO/dalvikvm(2525): | group="main" sCount=0 dsCount=0 s=N obj=0x44c96990 self=0x294be0 
04-13 10:20:46.646: INFO/dalvikvm(2525): | sysTid=2541 nice=1 sched=0/0 cgrp=unknown handle=2667208 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Object.wait(Native Method) 
04-13 10:20:46.646: INFO/dalvikvm(2525): - waiting on <0x28cff0> (a android.net.http.RequestQueue) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Object.wait(Object.java:288) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at android.net.http.ConnectionThread.run(ConnectionThread.java:98) 
04-13 10:20:46.646: INFO/dalvikvm(2525): "Thread-12" prio=5 tid=23 TIMED_WAIT 
04-13 10:20:46.646: INFO/dalvikvm(2525): | group="main" sCount=0 dsCount=0 s=N obj=0x44c7b460 self=0x261498 
04-13 10:20:46.646: INFO/dalvikvm(2525): | sysTid=2540 nice=0 sched=0/0 cgrp=unknown handle=2375456 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Object.wait(Native Method) 
04-13 10:20:46.646: INFO/dalvikvm(2525): - waiting on <0x2444b0> (a com.phonegap.DroidGap$1$1) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Object.wait(Object.java:326) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at com.phonegap.DroidGap$1$1.run(DroidGap.java:387) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Thread.run(Thread.java:1096) 
04-13 10:20:46.646: INFO/dalvikvm(2525): "Thread-11" prio=5 tid=21 NATIVE 
04-13 10:20:46.646: INFO/dalvikvm(2525): | group="main" sCount=0 dsCount=0 s=N obj=0x44c7af48 self=0x262998 
04-13 10:20:46.646: INFO/dalvikvm(2525): | sysTid=2539 nice=0 sched=0/0 cgrp=unknown handle=2333912 
04-13 10:20:46.646: INFO/dalvikvm(2525): at org.apache.harmony.luni.platform.OSNetworkSystem.acceptSocketImpl(Native Method) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at org.apache.harmony.luni.platform.OSNetworkSystem.accept(OSNetworkSystem.java:69) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at org.apache.harmony.luni.net.PlainSocketImpl.accept(PlainSocketImpl.java:126) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.net.ServerSocket.implAccept(ServerSocket.java:285) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.net.ServerSocket.accept(ServerSocket.java:164) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at com.phonegap.CallbackServer.run(CallbackServer.java:185) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Thread.run(Thread.java:1096) 
04-13 10:20:46.646: INFO/dalvikvm(2525): "CookieSyncManager" prio=5 tid=19 TIMED_WAIT 
04-13 10:20:46.646: INFO/dalvikvm(2525): | group="main" sCount=0 dsCount=0 s=N obj=0x44c68588 self=0x127408 
04-13 10:20:46.646: INFO/dalvikvm(2525): | sysTid=2538 nice=10 sched=0/0 cgrp=unknown handle=1220392 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Object.wait(Native Method) 
04-13 10:20:46.646: INFO/dalvikvm(2525): - waiting on <0x23b538> (a android.os.MessageQueue) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at java.lang.Object.wait(Object.java:326) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at android.os.MessageQueue.next(MessageQueue.java:144) 
04-13 10:20:46.646: INFO/dalvikvm(2525): at android.os.Looper.loop(Looper.java:110) 
04-13 10:20:46.656: INFO/dalvikvm(2525): at android.webkit.WebSyncManager.run(WebSyncManager.java:90) 
04-13 10:20:46.656: INFO/dalvikvm(2525): at java.lang.Thread.run(Thread.java:1096) 
04-13 10:20:46.656: INFO/dalvikvm(2525): "WebViewCoreThread" prio=5 tid=17 RUNNABLE 
04-13 10:20:46.656: INFO/dalvikvm(2525): | group="main" sCount=0 dsCount=0 s=N obj=0x44cself=0x136478 
04-13 10:20:46.656: INFO/dalvikvm(2525): | sysTid=2535 nice=0 sched=0/0 cgrp=unknown handle=1339552 
04-13 10:20:46.656: INFO/dalvikvm(2525): at android.webkit.WebViewCore.nativeTouchUp(Native Method) 
04-13 10:20:46.656: INFO/dalvikvm(2525): at android.webkit.WebViewCore.access$3400(WebViewCore.java:48) 
04-13 10:20:46.656: INFO/dalvikvm(2525): at android.webkit.WebViewCore$EventHub$1.handleMessage(WebViewCore.java:1094) 
04-13 10:20:46.656: INFO/dalvikvm(2525): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-13 10:20:46.656: INFO/dalvikvm(2525): at android.os.Looper.loop(Looper.java:123) 
04-13 10:20:46.656: INFO/dalvikvm(2525): at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:611) 
04-13 10:20:46.656: INFO/dalvikvm(2525): at java.lang.Thread.run(Thread.java:1096) 
04-13 10:20:46.656: INFO/dalvikvm(2525): "Binder Thread #3" prio=5 tid=15 NATIVE 
04-13 10:20:46.656: INFO/dalvikvm(2525): | group="main" sCount=0 dsCount=0 s=N obj=0x44c530e8 self=0x130c70 
04-13 10:20:46.656: INFO/dalvikvm(2525): | sysTid=2534 nice=0 sched=0/0 cgrp=unknown handle=1354864 
04-13 10:20:46.656: INFO/dalvikvm(2525): at dalvik.system.NativeStart.run(Native Method) 
04-13 10:20:46.656: INFO/dalvikvm(2525): "Binder Thread #2" prio=5 tid=13 NATIVE 
04-13 10:20:46.656: INFO/dalvikvm(2525): | group="main" sCount=0 dsCount=0 s=N obj=0x44c53028 self=0x1269e0 
04-13 10:20:46.656: INFO/dalvikvm(2525): | sysTid=2533 nice=0 sched=0/0 cgrp=unknown handle=1383744 
04-13 10:20:46.656: INFO/dalvikvm(2525): at dalvik.system.NativeStart.run(Native Method) 
04-13 10:20:46.656: INFO/dalvikvm(2525): "Binder Thread #1" prio=5 tid=11 NATIVE 
04-13 10:20:46.656: INFO/dalvikvm(2525): | group="main" sCount=0 dsCount=0 s=N obj=0x44c4dc50 self=0x132840 
04-13 10:20:46.656: INFO/dalvikvm(2525): | sysTid=2532 nice=0 sched=0/0 cgrp=unknown handle=1354576 
04-13 10:20:46.656: INFO/dalvikvm(2525): at dalvik.system.NativeStart.run(Native Method) 
04-13 10:20:46.656: INFO/dalvikvm(2525): "JDWP" daemon prio=5 tid=9 VMWAIT 
04-13 10:20:46.656: INFO/dalvikvm(2525): | group="system" sCount=0 dsCount=0 s=N obj=0x44c4c2a0 self=0x14e0f0 
04-13 10:20:46.656: INFO/dalvikvm(2525): | sysTid=2529 nice=0 sched=0/0 cgrp=unknown handle=1135864 
04-13 10:20:46.656: INFO/dalvikvm(2525): at dalvik.system.NativeStart.run(Native Method) 
04-13 10:20:46.656: INFO/dalvikvm(2525): "Signal Catcher" daemon prio=5 tid=7 VMWAIT 
04-13 10:20:46.656: INFO/dalvikvm(2525): | group="system" sCount=0 dsCount=0 s=N obj=0x44c4c1e8 self=0x1127b0 
04-13 10:20:46.656: INFO/dalvikvm(2525): | sysTid=2528 nice=0 sched=0/0 cgrp=unknown handle=1338232 
04-13 10:20:46.656: INFO/dalvikvm(2525): at dalvik.system.NativeStart.run(Native Method) 
04-13 10:20:46.656: INFO/dalvikvm(2525): "HeapWorker" daemon prio=5 tid=5 VMWAIT 
04-13 10:20:46.656: INFO/dalvikvm(2525): | group="system" sCount=0 dsCount=0 s=N obj=0x43562ed8 self=0x12b268 
04-13 10:20:46.656: INFO/dalvikvm(2525): | sysTid=2526 nice=0 sched=0/0 cgrp=unknown handle=1355192 
04-13 10:20:46.656: INFO/dalvikvm(2525): at dalvik.system.NativeStart.run(Native Method) 
04-13 10:20:46.656: ERROR/dalvikvm(2525): VM aborting 

Ceci est la pile:

ScanActivity.scanCode() line: 12  
    IntentIntegrator.initiateScan(ScanActivity.this); 

Activity.class: 
    ScanActivity(Activity).startActivityForResult(Intent, int) line: 2749 

Reference.class: 
    WeakReference(Reference).get() line: 147  

Ensuite, l'application se termine.

+0

Quelle exception provoque le blocage de l'application? Avez-vous regardé dans Logcat? –

+0

je vais attacher à la poste –

+0

Ce n'est pas LogCat. Ou, au moins, ce n'est pas la trace de la pile Java de votre exception. – CommonsWare

Répondre

2

Consultez le didacticiel sur les codes à barres PhoneGap here. Il vous faudra pas à pas pour créer un exemple d'application avec zxing via le plugin PhoneGap de purplecabbage.