Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android onPostExecute未接收字符串_Android_Json - Fatal编程技术网

Android onPostExecute未接收字符串

Android onPostExecute未接收字符串,android,json,Android,Json,我在Android Studio中有一个非常基本的程序,它从网站(“”)获取一个Json对象,然后在屏幕上显示它,而不解析它。Json对象已正确传输,但在onPostExecute时,字符串结果似乎为null,Log.e(“setText”)引发NullPointerException,而Log.e(“String”)正确,并且既不引发IOException,也不引发MalformedUrlexeption: try { url = new URL("https

我在Android Studio中有一个非常基本的程序,它从网站(“”)获取一个Json对象,然后在屏幕上显示它,而不解析它。Json对象已正确传输,但在onPostExecute时,字符串结果似乎为null,Log.e(“setText”)引发NullPointerException,而Log.e(“String”)正确,并且既不引发IOException,也不引发MalformedUrlexeption:

     try {
            url = new URL("https://jsonparsingdemo-cec5b.firebaseapp.com/jsonData/moviesDemoItem.txt");
            connection = (HttpURLConnection) url.openConnection();
            connection.connect();

            InputStream stream = connection.getInputStream();

            reader = new BufferedReader(new InputStreamReader(stream));
            Log.e("TRY", "trybracket");
            StringBuffer buffer = new StringBuffer();

            String line = "";
            while ((line = reader.readLine()) != null) {
                buffer.append(line);
            }

            String result = buffer.toString();
            Log.e("String", result);
            return result;

        } catch (MalformedURLException e) {
            e.printStackTrace();
            Log.e("MUE", "Malformed");
        } catch (IOException e) {
            e.printStackTrace();
            Log.e("IOE", "IOException");
        } finally {
            if (connection != null) {
                connection.disconnect();
            }
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return null;

        }
    }

    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);
        tvData.setText(result);
        Log.e("setText", result);
    }
}
这也是我的日志:

E/TRY: trybracket
E/String: {  "movies": [{"movie": "Avengers","year": 2012}]}
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main 
              Process com.stasiak.jsonparsing, PID: 20061
              java.lang.NullPointerException: println needs a message
                    at android.util.Log.println_native(Native Method)
                    at android.util.Log.e(Log.java:238)
                    at com.stasiak.jsonparsing.MainActivity$JSONTask.onPostExecute(MainActivity.java:96)
                    at com.stasiak.jsonparsing.MainActivity$JSONTask.onPostExecute(MainActivity.java:39)
                    at android.os.AsyncTask.finish(AsyncTask.java:695)
                    at android.os.AsyncTask.-wrap1(Unknown Source:0)
                    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
                    at android.os.Handler.dispatchMessage(Handler.java:105)
                    at android.os.Looper.loop(Looper.java:164)
                    at android.app.ActivityThread.main(ActivityThread.java:6541)<1 internal calls>
                    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
E/TRY:trybracket
E/String:{“电影”:[{“电影”:“复仇者”,“年份”:2012}]}
D/AndroidRuntime:关闭虚拟机
E/AndroidRuntime:致命异常:主
Process com.statsiak.jsonparsing,PID:20061
java.lang.NullPointerException:println需要一条消息
位于android.util.Log.println_native(本机方法)
位于android.util.Log.e(Log.java:238)
位于com.statsiak.jsonparsing.MainActivity$JSONTask.onPostExecute(MainActivity.java:96)
位于com.statsiak.jsonparsing.MainActivity$JSONTask.onPostExecute(MainActivity.java:39)
位于android.os.AsyncTask.finish(AsyncTask.java:695)
位于android.os.AsyncTask.-wrap1(未知源:0)
在android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)中
位于android.os.Handler.dispatchMessage(Handler.java:105)
位于android.os.Looper.loop(Looper.java:164)
位于android.app.ActivityThread.main(ActivityThread.java:6541)
在com.android.internal.os.Zygote$MethodAndArgsCaller.run上(Zygote.java:240)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

您将在
finally
块中返回
null
。move
返回null到外部最终块

最终块是将始终执行的块(除非将执行
system.exit()
)。这就是为什么它总是空的

提示:-始终在日志的第二个参数中使用
”,否则它将在null的情况下引发异常,如。。消息不应为空等

Log.e("String", " "+result);

使用调试器逐步完成它并查看发生了什么。始终尝试将日志打印为
log.e(“字符串”,“结果”)。然后看看结果是什么。检查结果的日志值Hanks,由于这个小疏忽,我快发疯了不客气