实际上我正在扫描二维码,如果我传递完整的信息来生成QR,然后扫描它,它工作得很好,但如果不插入完整的数据来生成QR,然后扫描QR,我的应用程序就会崩溃。我已经添加了日志报告,以及它崩溃的代码。我刚刚插入了name和tel3来生成QR,当我扫描它时,它崩溃了
scanDataLength = scanData.length();
parts = scanData.split(":");
semiColons = scanData.split(";");
qrCodeType = parts[0];
if (qrCodeType.contentEquals("MECARD")) {
String name = semiColons[0].split(":")[2];
String adr = semiColons[1].split(":")[1];
String tel = semiColons[2].split(":")[1];
String tel2 = semiColons[3].split(":")[1];
String tel3 = semiColons[4].split(":")[1];
String email = semiColons[5].split(":")[1];
String email2 = semiColons[6].split(":")[1];
String url = semiColons[7].split(":")[1];
String notes = semiColons[8].split(":")[1];
saveContact(name, adre, tel, tel2, tel3, email, email2, url, notes);
}日志
09-17 14:46:04.369: E/AndroidRuntime(12417): FATAL EXCEPTION: main
09-17 14:46:04.369: E/AndroidRuntime(12417): java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
09-17 14:46:04.369: E/AndroidRuntime(12417): at com.gravity.innovations.qr.manager.ScanQRActivity$2.onPreviewFrame(ScanQRActivity.java:299)
09-17 14:46:04.369: E/AndroidRuntime(12417): at android.hardware.Camera$EventHandler.handleMessage(Camera.java:786)
09-17 14:46:04.369: E/AndroidRuntime(12417): at android.os.Handler.dispatchMessage(Handler.java:99)
09-17 14:46:04.369: E/AndroidRuntime(12417): at android.os.Looper.loop(Looper.java:137)
09-17 14:46:04.369: E/AndroidRuntime(12417): at android.app.ActivityThread.main(ActivityThread.java:5039)
09-17 14:46:04.369: E/AndroidRuntime(12417): at java.lang.reflect.Method.invokeNative(Native Method)
09-17 14:46:04.369: E/AndroidRuntime(12417): at java.lang.reflect.Method.invoke(Method.java:511)
09-17 14:46:04.369: E/AndroidRuntime(12417): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-17 14:46:04.369: E/AndroidRuntime(12417): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-17 14:46:04.369: E/AndroidRuntime(12417): at dalvik.system.NativeStart.main(Native Method)
09-17 14:46:05.588: I/Process(12417): Sending signal. PID: 12417 SIG: 9发布于 2014-09-17 18:00:56
问题与数组长度有关
String name = semiColons[0].split(":")[2];您的semiColons行中没有2列,因此您需要通过在":“后面添加一些内容或者将索引从2更改为1或0来修复此问题
https://stackoverflow.com/questions/25887463
复制相似问题