Причина: com.google.gson.TokenMgrError: лексическая ошибка в строке 1, столбце 1. Обнаружено: ‹ (60), после:

В моем приложении для Android я сталкиваюсь с очень странной ошибкой и не могу попасть в ее корень. Я делаю сетевой вызов и анализирую ответ JSON. Но приложение вылетает, и я получаю следующую ошибку.

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

com.google.gson.JsonParseException: Failed parsing JSON source: java.io.StringReader@40e13578 to Json
    at com.google.gson.JsonParser.parse(JsonParser.java:57)
    at com.google.gson.Gson.fromJson(Gson.java:443)
    at com.google.gson.Gson.fromJson(Gson.java:396)
    at com.google.gson.Gson.fromJson(Gson.java:372)
    at com.xyz.getStaffFromJson(JsonUtils.java:201)
    at com.xyz.getMyDetails(WebAPI.java:666)
    at com.xyz.OptimisedSyncService.onHandleIntent(OptimisedSyncService.java:147)
    at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:156)
    at android.os.HandlerThread.run(HandlerThread.java:60)
    Caused by: com.google.gson.TokenMgrError: Lexical error at line 1, column 1. Encountered: \"<\" (60), after : \"\"
    at com.google.gson.JsonParserJavaccTokenManager.getNextToken(JsonParserJavaccTokenManager.java:1168)
    at com.google.gson.JsonParserJavacc.jj_ntk(JsonParserJavacc.java:635)
    at com.google.gson.JsonParserJavacc.parse(JsonParserJavacc.java:10)
    at com.google.gson.JsonParser.parse(JsonParser.java:54)
    ... 10 more
    com.google.gson.TokenMgrError: Lexical error at line 1, column 1. Encountered: \"<\" (60), after : \"\"
    at com.google.gson.JsonParserJavaccTokenManager.getNextToken(JsonParserJavaccTokenManager.java:1168)
    at com.google.gson.JsonParserJavacc.jj_ntk(JsonParserJavacc.java:635)
    at com.google.gson.JsonParserJavacc.parse(JsonParserJavacc.java:10)
    at com.google.gson.JsonParser.parse(JsonParser.java:54)
    at com.google.gson.Gson.fromJson(Gson.java:443)
    at com.google.gson.Gson.fromJson(Gson.java:396)
    at com.google.gson.Gson.fromJson(Gson.java:372)
    at com.xyz.getStaffFromJson(JsonUtils.java:201)
    at com.xyz.getMyDetails(WebrosterAPI.java:666)
    at com.xyz.OptimisedSyncService.onHandleIntent(OptimisedSyncService.java:147)
    at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:156)
    at android.os.HandlerThread.run(HandlerThread.java:60)

Пример ответа: {"mcode":"123","mobilesettings":{"mobile":"07405123154","email":"[email protected]","телефон":"0174465599","timeout":20 ,"mail_address":"abc.gmail.com","mail_user":"[email protected]","mail_password":"пароль","task_state":0,"force_task_reason":0,"allow_free_task_reason" :1,"unsent_sync":10,"booking_sync":240,"default_scan_mode":0,"gps_enabled":1,"gps_poll_interval":5,"minimum_gps_accuracy":100.0,"allow_blank_aborted_reason":false,"allow_free_aborted_reason":true },"персонал":{"json_class":"Персонал","staff_id":1234,"title":"","fname":"тряпки","mname":"","sname":"тряпки" ,"location_id":321,"пейджер":"","мобильный":"07444456789","электронная почта":"[email protected]","веб-сайт":"","доб":null,"job_title" :"","uid_ref":1,"dt_stamp":"Вт, 11 февраля 13:13:44 +0000 2014","pin_no":"","wroptions":0,"dt_created":"Ср, 04 декабря 16 :13:08 +0000 2013","user_created":1,"pin_start":"1234","pin_end":"1234","payroll_report":"Payroll.xml","external_payroll_ref":"","payroll_export ":"Payroll.sql","поставщик":0,"сохранено":1}}


person raghavendran chandran    schedule 27.05.2014    source источник
comment
Взгляните на JSON, который вы анализируете. Часть "" кажется странной...   -  person keyser    schedule 27.05.2014
comment
Поделитесь примером строки JSON, которую вы пытаетесь проанализировать.   -  person Braj    schedule 27.05.2014
comment
Привет, Брадж. Пожалуйста, обратитесь к образцу ответа, добавленному к вопросу. Любые мысли были бы очень полезны.   -  person raghavendran chandran    schedule 28.05.2014


Ответы (1)


Я понял, что, ожидая ответа в формате json, я получал ответ в формате html от авторизованного портала Wi-Fi, такого как точка доступа BT или точки доступа Virgin Media. Следовательно, синтаксический анализатор дал сбой и вызвал ошибку.

person raghavendran chandran    schedule 02.09.2014