интеграция zxing с андроидом

Я пытаюсь интегрировать сканер штрих-кода zxing в свое приложение. Я не хочу делать это с помощью намерения, поскольку я хотел бы, чтобы приложение было универсальным решением. Я понимаю ограничения, которые у этого есть, но у меня действительно нет выбора в этом

Я следовал следующему руководству, чтобы интегрировать код в виде библиотеки в свой проект.

http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/

Я получаю ошибку исключения Null со следующим logcat . Если кто-нибудь много знает о коде zxing, может дать мне какие-либо указатели, которые были бы замечательными. дайте мне знать, если вам нужна дополнительная справочная информация

. Я вызываю сканер со следующим

        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
    intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
    startActivityForResult(intent, 0);



12-28 06:41:57.464: W/dalvikvm(4301): threadid=3: thread exiting with uncaught exception (group=0x2aaca450)
12-28 06:41:57.464: E/AndroidRuntime(4301): Uncaught handler: thread main exiting due to uncaught exception
12-28 06:41:57.504: E/AndroidRuntime(4301): java.lang.RuntimeException: Unable to resume activity {com.discovery_scan.app/com.google.zxing.client.android.CaptureActivity}: java.lang.NullPointerException
12-28 06:41:57.504: E/AndroidRuntime(4301):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2950)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2965)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2516)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at android.os.Looper.loop(Looper.java:123)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at android.app.ActivityThread.main(ActivityThread.java:4363)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at java.lang.reflect.Method.invokeNative(Native Method)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at java.lang.reflect.Method.invoke(Method.java:521)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:885)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at dalvik.system.NativeStart.main(Native Method)
12-28 06:41:57.504: E/AndroidRuntime(4301): Caused by: java.lang.NullPointerException
12-28 06:41:57.504: E/AndroidRuntime(4301):     at com.google.zxing.client.android.CaptureActivity.onResume(CaptureActivity.java:178)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at android.app.Activity.performResume(Activity.java:3763)
12-28 06:41:57.504: E/AndroidRuntime(4301):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2937)

person user1096447    schedule 28.12.2011    source источник
comment
Вы изменили какую-либо часть исходного кода zxing? Какое устройство вы используете? Версия Market сканера штрих-кода работает правильно? Установлена ​​ли маркет-версия на устройстве, пока вы тестируете собственную сборку? (если так, я бы попробовал сначала удалить это);   -  person FoamyGuy    schedule 28.12.2011
comment
Привет. Нет, я вообще не менял код zxing, оставив его как есть. Я попробовал свой проект (с кодом библиотеки zxing) на 2 устройствах и получил ту же ошибку.   -  person user1096447    schedule 29.12.2011
comment
@user1096447 user1096447 вы нашли решение с той же ошибкой?   -  person Erum    schedule 26.01.2015


Ответы (1)


Самая большая путаница здесь заключается в том, что вы пытаетесь не использовать намерения, но вы используете намерения. Что он?

Я предполагаю, что вы на самом деле не хотите использовать намерения. Ошибка возникает из-за того, что вы скопировали и вставили наш код, не понимая его. Я уверен, что это потому, что метод onResume() обращается к элементам пользовательского интерфейса, которых нет в вашей копии макета.

Пожалуйста, не копируйте наш код таким образом; на самом деле, я думаю, что полная копия нарушает товарный знак. Интегрируйте через Intent, если у вас нет времени или желания писать собственное приложение для сканирования.

http://code.google.com/p/zxing/wiki/ScanningViaIntent

person Sean Owen    schedule 28.12.2011
comment
Привет, мне жаль, что я так и не разобрался. Я только начал кодировать для Android пару недель назад, так что это моя наивность, я боюсь, что я посмотрел на ваш код, чтобы выполнить это с помощью намерений. Я создал новую активность в своем проекте под названием IntentIntegrator, используя предоставленный вами код (изменив только имя пакета на наверху) Я получаю следующую ошибку, однако, или строку public static IntentResult parseActivityResult(int requestCode, int resultCode, Intentintent) {он говорит, что IntentResult не может быть преобразован в тип, я может быть просто глуп, но знаете ли вы, что это значит ? - person user1096447; 29.12.2011
comment
Вам нужны оба класса из android-integration - person Sean Owen; 29.12.2011