Android - 在没有堆栈跟踪的情况下调用 getJSONArray 抛出 JSONException

Posted

技术标签:

【中文标题】Android - 在没有堆栈跟踪的情况下调用 getJSONArray 抛出 JSONException【英文标题】:Android - Calling getJSONArray throwing JSONException without stacktrace 【发布时间】:2011-02-05 01:32:48 【问题描述】:

我目前正在开发一个从 JSON 提要中提取论坛列表的 android 应用。我正在尝试解析提要,并在调用 getJSONArray 后立即抛出 JSON 异常,而没有堆栈跟踪。返回的 JSON 存储在 JSONObject jobj 中,格式如下:


    "Forum":
        [
         "ForumName":"CEC Employee Communications Forum","ForumId":"105",
         "ForumName":"CEC External Stakeholder Relations Forum","ForumId":"109",
         "ForumName":"See All...","ForumId":"0"
        ]

但是,在运行以下代码时,我会立即得到一个没有堆栈跟踪的异常:

JSONArray jarray = new JSONArray();
jarray = jobj.getJSONArray("Forum");

跑步

jobj.GetJSONArray("Forum").toString();

返回格式正确的数组:

[
 "ForumName":"CEC Employee Communications Forum","ForumId":"105",
 "ForumName":"CEC External Stakeholder Relations Forum","ForumId":"109",
 "ForumName":"See All...","ForumId":"0"
]

我也试过

JSONArray jarray = new JSONArray(jobj.GetJSONArray("Forum").toString());

并立即抛出异常。

【问题讨论】:

【参考方案1】:

那么,这样的事情没有帮助吗?我怀疑您是否可以在没有堆栈跟踪的情况下获得异常:

JSONarray jarray = null;
try 
   jarray = jobj.getJSONArray("Forum");

catch(JSONException je)  je.printStackTrace(); 

【讨论】:

我试过了,并在该行上放了一个断点,但它直接跳过它并且在日志中什么也没打印。

以上是关于Android - 在没有堆栈跟踪的情况下调用 getJSONArray 抛出 JSONException的主要内容,如果未能解决你的问题,请参考以下文章

没有有用的堆栈跟踪的 Android 应用程序崩溃

如何在没有添加的情况下在 Heroku 中启用堆栈跟踪

有没有办法在不抛出异常的情况下转储堆栈跟踪?

NullPointerException 堆栈跟踪在没有调试代理的情况下不可用

在没有混淆的情况下使用 Proguard 和 Android

Erlang堆栈跟踪中包含多少条目?