【问题标题】:Caused by: com.google.gson.TokenMgrError: Lexical error at line 1, column 1. Encountered: "<" (60), after : ""引起:com.google.gson.TokenMgrError:第 1 行第 1 列的词法错误。遇到:“<”(60),之后:“”
【发布时间】:2014-05-27 15:40:14
【问题描述】:

在我的 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":"rcb@rtc.com","telephone":"0174465599","timeout":20,"mail_address ":"abc.gmail.com","mail_user":"mail.user@gmail.com","mail_password":"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”:“rags”,“mname”:“”,“sname”:“rags”,“location_id” ":321,"pager":"","mobile":"07444456789","email":"abc@def.com","website":"","dob":null,"job_title":"" ,"uid_ref":1,"dt_stamp":"2 月 11 日星期二 13:13:44 +0000 2014","pin_no":"","wroptions":0,"dt_created":"12 月 4 日星期三 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","supplier":0,"is_saved":1}}

【问题讨论】:

  • 看看你正在解析的 JSON。 "" 部分看起来确实很奇怪......
  • 请分享您尝试解析的示例 JSON 字符串。
  • 嗨,Braj,请参阅添加到问题中的示例回复。任何想法都会非常有帮助。

标签: json gson android android-parser


【解决方案1】:

我发现在期待 json 响应时,我收到了来自强制门户 wifi 的 html 响应,例如 BT 热点或 Virgin 媒体热点。因此解析器失败并导致错误。

【讨论】:

    猜你喜欢
    • 2019-09-18
    • 2017-09-04
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 2011-04-03
    • 1970-01-01
    相关资源
    最近更新 更多