我有这段代码:
HJRestClient.post(path, params, new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
try {
JSONArray array = response.getJSONArray("tags");
if (adDetailViewAdapter != null) {
adDetailViewAdapter.setTags(array);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
JSONArray array = response.getJSONArray("tags");
行W/System.err: org.json.JSONException: No value for tags
崩溃,Android v6.0.1
虽然我编写了用于捕获异常的代码,但它并没有被捕获并导致应用程序崩溃。
我有2台设备使用exception
的三星Galaxy Note 5成功捕获了Android v4.4.2
。
另一个exception
的华为Mate 7,catch (Exception exception) {}
未被抓住并导致崩溃。
我还写道:
<Page Name="Install">
<Text X="11" Y="-73" Width="246" Height="17" FontId="3">Currently installed version:</Text>
<Text X="11" Y="-73" Width="246" Height="17" FontId="3">CURRENT VERSION</Text>
<Text X="11" Y="-73" Width="246" Height="17" FontId="3">Version to be installed:</Text>
<Text X="11" Y="-73" Width="246" Height="17" FontId="3">#(loc.InstallVersion)</Text>
<Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallInstallButton)</Button>
<Button Name="WelcomeCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallCloseButton)</Button>
</Page>
但它仍在崩溃。
任何帮助?
答案 0 :(得分:0)
你应该这样:
HJRestClient.post(path, params, new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
try {
if(response!=null&&response.has("tags")){
JSONArray array = response.getJSONArray("tags");
if (adDetailViewAdapter != null) {
adDetailViewAdapter.setTags(array);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
希望这会对你有所帮助。