Android inputStream.read()空指针异常

Android inputStream.read()空指针异常,android,nullpointerexception,inputstream,Android,Nullpointerexception,Inputstream,我有时会出错,但不明白原因: 代码: public void newConnect() { try { urlka = new URL(myUrl); } catch (MalformedURLException e) { e.printStackTrace(); } HttpURLConnection conn = null; try {

我有时会出错,但不明白原因:

代码:

public void newConnect()
        { try {
          urlka = new URL(myUrl);

        } catch (MalformedURLException e) {

            e.printStackTrace();
        }
          HttpURLConnection conn = null;
        try {
            conn = (HttpURLConnection) urlka.openConnection();
            conn.connect();
            Log.v("Responcse code","Response code " +conn.getResponseCode());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
           try {
             try {
                in = new BufferedInputStream(conn.getInputStream());

             } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
          result =  readStream(in); /// line 1198

           }
            finally {
             conn.disconnect();
           }
readStrem()

日志:

java.lang.RuntimeException: An error occured while executing doInBackground()
    at android.os.AsyncTask$3.done(AsyncTask.java:200)
    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
    at java.lang.Thread.run(Thread.java:1096)
Caused by: java.lang.NullPointerException
    at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl$LocalCloseInputStream.read(HttpURLConnectionImpl.java:167)
    at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:157)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:243)
    at myApp.activity.com.myApp.readStream(myApp.java:1247)
    at myApp.activity.com.myApp.newConnect(myApp.java:1198)
    at myApp.activity.com.myApp$newRun.doInBackground(myApp.java:424)
    at myApp.activity.com.myApp$newRun.doInBackground(myApp.java:1)
    at android.os.AsyncTask$2.call(AsyncTask.java:185)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
这种错误有时是错误的。但这是错误的:(有什么能帮我解决这个问题吗? 我不明白为什么会有这个错误


尊敬的Peter。

有时可能会出现连接问题,原因是in=new BufferedInputStream(conn.getInputStream());抛出错误,并且输入流保持null。您还需要处理null大小写以解决此问题。

有时可能会出现连接问题,原因是in=new BufferedInputStream()(conn.getInputStream());抛出错误,并且输入流保持null。您还需要处理null大小写以消除此问题。

我完全理解:需要捕获nullpointerexception..如果捕获-返回其他结果?或者您可以检查(in==null)返回其他结果;非常感谢,现在我理解并解决了这个问题。实际上,有时返回null..但当我不知道..时,我从未看到这个错误。现在我检查null(例如in=null和crasse)所有工作都很好。谢谢。我完全理解:需要捕获nullpointerexception..如果捕获-返回其他结果?或者你可以检查(in==null)是否返回其他结果;非常感谢,现在我理解并解决了这个问题。真的,in有时返回null..但是当我不知道时..我从未看到这个错误。现在我检查了null(例如in=null和crass)一切正常。谢谢。
java.lang.RuntimeException: An error occured while executing doInBackground()
    at android.os.AsyncTask$3.done(AsyncTask.java:200)
    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
    at java.lang.Thread.run(Thread.java:1096)
Caused by: java.lang.NullPointerException
    at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl$LocalCloseInputStream.read(HttpURLConnectionImpl.java:167)
    at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:157)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:243)
    at myApp.activity.com.myApp.readStream(myApp.java:1247)
    at myApp.activity.com.myApp.newConnect(myApp.java:1198)
    at myApp.activity.com.myApp$newRun.doInBackground(myApp.java:424)
    at myApp.activity.com.myApp$newRun.doInBackground(myApp.java:1)
    at android.os.AsyncTask$2.call(AsyncTask.java:185)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)