ZXing 을 이용한 QRCode 스캔 프로그램 작성시 오류
에뮬레이터에서 ZXing QRCode 를 호출하는 순간 오류가 발생합니다.
사용자 Device 에 ZXing 이 설치되지 않았다는 가정하에 특정앱 내에서 ZXing 모듈을 탑재한 상태로 배포가 되어야 함.
1. 앱에서 버튼 클릭시 아래와 같은 내용으로 ZXing 을 호출하도록 구현하였고
Intent qrintent = new Intent("com.google.zxing.client.android.SCAN");
qrintent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(qrintent, 0);
2. ZXing 1.6 을 eclipse 에서 jar 로 만들어서 External jar 로 Build Path 에 지정
(core 부분만 ant 를 통해서 jar 로 만들어 참조했다가 다운로드 받은 ZXing 1.6 전체를 jar 로 만들어 참조한 상태임)
3. 개발 환경
JDK 1.6.0_22
eclipse Helios
ZXing 1.6
안드로이드 버전 2.2
4. 오류 로그
11-23 08:40:26.199: INFO/ActivityManager(60): Starting activity: Intent { act=com.google.zxing.client.android.SCAN (has extras) }
11-23 08:40:26.221: DEBUG/AndroidRuntime(636): Shutting down VM
11-23 08:40:26.229: WARN/dalvikvm(636): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): FATAL EXCEPTION: main
11-23 08:40:26.280: ERROR/AndroidRuntime(636): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.google.zxing.client.android.SCAN (has extras) }
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at android.app.Activity.startActivityForResult(Activity.java:2817)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at com.test.android.android$2.onClick(android.java:183)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at android.view.View.performClick(View.java:2408)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at android.view.View$PerformClick.run(View.java:8816)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at android.os.Handler.handleCallback(Handler.java:587)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at android.os.Handler.dispatchMessage(Handler.java:92)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at android.os.Looper.loop(Looper.java:123)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at android.app.ActivityThread.main(ActivityThread.java:4627)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at java.lang.reflect.Method.invokeNative(Native Method)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at java.lang.reflect.Method.invoke(Method.java:521)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-23 08:40:26.280: ERROR/AndroidRuntime(636): at dalvik.system.NativeStart.main(Native Method)
11-23 08:40:26.299: WARN/ActivityManager(60): Force finishing activity com.test.android/.android
11-23 08:40:26.609: DEBUG/dalvikvm(265): GC_EXPLICIT freed 46 objects / 2192 bytes in 358ms
11-23 08:40:26.849: WARN/ActivityManager(60): Activity pause timeout for HistoryRecord{44fe6db8 com.test.android/.android}
11-23 08:40:28.719: INFO/Process(636): Sending signal. PID: 636 SIG: 9
11-23 08:40:28.779: INFO/ActivityManager(60): Process com.test.android (pid 636) has died.
11-23 08:40:28.779: INFO/WindowManager(60): WIN DEATH: Window{45059a08 com.test.android/com.test.android.android paused=false}
11-23 08:40:29.189: WARN/InputManagerService(60): Got RemoteException sending setActive(false) notification to pid 636 uid 10032
위의 공지사항을 다 읽었음.
며칠동안 구글링도 해보고 API 도 보고 했지만, 해결하지 못하고 있습니다.
도움의 손길 기다리고 있겠습니다. 좋은 하루 되세요...
자답 : QRCODE 호출 부분에 문제가 있었군요. 수정하여 처리하였습니다. 조금씩 수정해야 하는 부분이 생기는군요.