Java JSON解析在Android应用程序脱机时崩溃

Java JSON解析在Android应用程序脱机时崩溃,java,android,json,Java,Android,Json,我尝试在我的android应用程序中解析JSON,它在连接互联网时工作正常。但是当我在没有互联网的情况下打开应用程序时,它崩溃了 我正在调试代码,当它到达这个部分时jArr=newjsonarray(json)(在convertStringToJSON(json)funtion中),应用程序崩溃 从何处调用函数的代码 copyInputStreamToFile 读取文件 convertStringToJSON LogCat 编辑 这是我调试产生问题的代码时的堆栈跟踪 我不知道为什么它指的是LIN

我尝试在我的android应用程序中解析JSON,它在连接互联网时工作正常。但是当我在没有互联网的情况下打开应用程序时,它崩溃了

我正在调试代码,当它到达这个部分时
jArr=newjsonarray(json)
(在
convertStringToJSON(json)
funtion中),应用程序崩溃

从何处调用函数的代码 copyInputStreamToFile 读取文件 convertStringToJSON LogCat 编辑 这是我调试产生问题的代码时的堆栈跟踪

我不知道为什么它指的是LINKEDIN

有什么想法吗


谢谢

使用LogCat检查与崩溃相关的Java堆栈跟踪:。如果您不理解堆栈跟踪告诉您的内容,请编辑您的问题并粘贴到堆栈跟踪中,并指出问题中的代码与堆栈跟踪中的行相对应。谢谢您的回答,我已编辑了我的问题。它只是说
04-07 21:15:53.790 14868-14923/pk.org.ascii.ascii W/dalvikvm﹕ threadid=11:线程退出时出现未捕获异常(group=0x415e1c80)
我可能错了,请帮助我找出错误。感谢这不是Java堆栈跟踪。如果您在Android Studio的Android Monitor视图(您在其中看到LogCat)中启用了“仅显示此应用程序”过滤,请将其关闭,但设置“错误”过滤器,然后查找Java堆栈跟踪。如果您的应用程序未使用LinkedIn,则我认为您复制了错误的堆栈跟踪,但这些错误确实有意义,将您的设备视为无法访问网络以解析主机名。是否确定
new JSONArray(json)是错误的来源吗?我很好奇,因为LogCat说线程退出是因为一个未捕获的异常。实际上,您正在尝试捕获一个异常。
if(MainActivity.isupdateAvailable) {
        jsonparser.copyInputStreamToFile(songUrl, songFileName, mainActivity);
        jArr = jsonparser.readFile(songFileName, mainActivity);
    }
    else{
        jArr = jsonparser.readFile(songFileName, mainActivity);
    }
}
public void copyInputStreamToFile( String url, String filename, Context context ) {
    createConnection(url);

    try {
        FileOutputStream fos = context.openFileOutput(filename, Context.MODE_PRIVATE);
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
        int line = 0;
        int a = 0;
        while ((line = reader.read()) != -1) {
            fos.write(line);
            a++;
        }
        fos.close();
        is.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
public JSONArray readFile(String filename, Context context){
    try {
        FileInputStream fis = context.openFileInput(filename);
        InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
        BufferedReader bufferedReader = new BufferedReader(isr);
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            sb.append(line).append("\n");
        }
        json = sb.toString();
        convertStringToJSON(json);
        fis.close();
        is.close();
        return jArr;
    }
    catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}
private void convertStringToJSON(String json){
    try {
        jArr = new JSONArray(json);
    }
    catch (Exception e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

}
04-07 21:15:53.790  14868-14923/pk.org.ascii.ascii W/dalvikvm﹕ threadid=11: thread exiting with uncaught exception (group=0x415e1c80)
04-07 21:43:44.610    8094-8148/? E/OkHttpStack﹕ Invalid url / host name https://www.linkedin.com/voyager/api/lixTreatments?nc=1460047424620
04-07 21:43:44.620    8094-8145/? E/OkHttpStack﹕ Invalid url / host name https://www.linkedin.com/voyager/api/growth/pageContent/new-to-voyager?nc=1460047424621
04-07 21:43:44.630    8094-8150/? E/OkHttpStack﹕ Invalid url / host name https://www.linkedin.com/voyager/api/feed/updates?q=findRecentFeed&count=20&moduleKey=home-feed%3Aphone&queryAfterTime=1460044486149&tabType=feed&nc=1460047424631
04-07 21:43:44.650    8094-8149/? E/OkHttpStack﹕ Invalid url / host name https://www.linkedin.com/voyager/api/mux?nc=1460047424654
04-07 21:43:44.650    8094-8150/? E/OkHttpStack﹕ Invalid url / host name https://www.linkedin.com/voyager/api/growth/pageContent/voyager_abi_autosync_toast?nc=1460047424656
04-07 21:43:44.710    8094-8094/? E/LixManagerImpl﹕ Error in network response for lix type 1