致命异常:android中的异步#1

时间:2015-07-09 11:40:19

标签: android json

@Override
    protected Void doInBackground(String... params) {
        String url = params[0];
        Log.i("MyActivity", "Before geting json from URL");
        // getting JSON string from URL
        JSONObject json = getJSONFromUrl(url);
        Log.i("MyActivity", "After geting json from URL");
        //parsing json data
        parseJson(json);
        return null;
    }
}


public JSONObject getJSONFromUrl(String url) {
    InputStream is = null;
    JSONObject jObj = null;
    String json = null;

    // Making HTTP request
    try {
        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        Log.i("MyActivity", "Before httppost "+url);
        HttpPost httpPost = new HttpPost(url);
        Log.i("MyActivity", "After httppost");
        HttpResponse httpResponse = httpClient.execute(httpPost);
        Log.i("MyActivity", "After httpResponse");
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();

        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        Log.i("MyActivity", "Before json getting");
        json = sb.toString();
        Log.i("MyActivity", "After json getting");

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        jObj = new JSONObject(json);
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

    // return JSON String
    return jObj;

}

我认为我在发布电话和提交回复后会解决问题。请帮助我。在这里,我使用了记录器来跟踪。 在这里,我已将json url指定为https://api.myjson.com/bins/1wpva

我在这里发布代码。

    07-09 17:11:54.128    9796-9796/? I/art﹕ Not late-enabling -Xcheck:jni (already on)
07-09 17:11:54.310    9796-9812/com.javatechig.feedreader D/OpenGLRenderer﹕ Use EGL_SWAP_BEHAVIOR_PRESERVED: true
07-09 17:11:54.314    9796-9796/com.javatechig.feedreader D/﹕ HostConnection::get() New Host Connection established 0xb42e9e80, tid 9796
07-09 17:11:54.391    9796-9811/com.javatechig.feedreader I/MyActivity﹕ Before geting json from URL
07-09 17:11:54.391    9796-9811/com.javatechig.feedreader I/MyActivity﹕ Before httppost https://api.myjson.com/bins/1wpva
07-09 17:11:54.392    9796-9811/com.javatechig.feedreader I/MyActivity﹕ After httppost
07-09 17:11:54.413    9796-9796/com.javatechig.feedreader D/Atlas﹕ Validating map...
07-09 17:11:54.477    9796-9812/com.javatechig.feedreader D/﹕ HostConnection::get() New Host Connection established 0xb43d70d0, tid 9812
07-09 17:11:54.585    9796-9812/com.javatechig.feedreader I/OpenGLRenderer﹕ Initialized EGL, version 1.4
07-09 17:11:54.608    9796-9812/com.javatechig.feedreader D/OpenGLRenderer﹕ Enabling debug mode 0
07-09 17:11:54.631    9796-9812/com.javatechig.feedreader W/EGL_emulation﹕ eglSurfaceAttrib not implemented
07-09 17:11:54.631    9796-9812/com.javatechig.feedreader W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xb431f740, error=EGL_SUCCESS
07-09 17:11:54.902    9796-9811/com.javatechig.feedreader W/System.err﹕ javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
07-09 17:11:54.902    9796-9811/com.javatechig.feedreader W/System.err﹕ at com.android.org.conscrypt.SSLNullSession.getPeerCertificates(SSLNullSession.java:104)
07-09 17:11:54.902    9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:98)
07-09 17:11:54.902    9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:393)
07-09 17:11:54.903    9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:170)
07-09 17:11:54.903    9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:169)
07-09 17:11:54.903    9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:124)
07-09 17:11:54.903    9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:365)
07-09 17:11:54.903    9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560)
07-09 17:11:54.903    9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:492)
07-09 17:11:54.904    9796-9811/com.javatechig.feedreader W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:470)
07-09 17:11:54.904    9796-9811/com.javatechig.feedreader W/System.err﹕ at com.javatechig.feedreader.FeedListActivity.getJSONFromUrl(FeedListActivity.java:103)
07-09 17:11:54.904    9796-9811/com.javatechig.feedreader W/System.err﹕ at com.javatechig.feedreader.FeedListActivity$DownloadFilesTask.doInBackground(FeedListActivity.java:82)
07-09 17:11:54.904    9796-9811/com.javatechig.feedreader W/System.err﹕ at com.javatechig.feedreader.FeedListActivity$DownloadFilesTask.doInBackground(FeedListActivity.java:64)
07-09 17:11:54.904    9796-9811/com.javatechig.feedreader W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:292)
07-09 17:11:54.904    9796-9811/com.javatechig.feedreader W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
07-09 17:11:54.904    9796-9811/com.javatechig.feedreader W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
07-09 17:11:54.904    9796-9811/com.javatechig.feedreader W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
07-09 17:11:54.904    9796-9811/com.javatechig.feedreader W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
07-09 17:11:54.904    9796-9811/com.javatechig.feedreader W/System.err﹕ at java.lang.Thread.run(Thread.java:818)
07-09 17:11:54.904    9796-9811/com.javatechig.feedreader E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
    Process: com.javatechig.feedreader, PID: 9796
    java.lang.RuntimeException: An error occured while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:304)
            at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
            at java.util.concurrent.FutureTask.run(FutureTask.java:242)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:818)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
            at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
            at org.json.JSONTokener.nextValue(JSONTokener.java:94)
            at org.json.JSONObject.<init>(JSONObject.java:156)
            at org.json.JSONObject.<init>(JSONObject.java:173)
            at com.javatechig.feedreader.FeedListActivity.getJSONFromUrl(FeedListActivity.java:129)
            at com.javatechig.feedreader.FeedListActivity$DownloadFilesTask.doInBackground(FeedListActivity.java:82)
            at com.javatechig.feedreader.FeedListActivity$DownloadFilesTask.doInBackground(FeedListActivity.java:64)
            at android.os.AsyncTask$2.call(AsyncTask.java:292)
            at java.util.concurrent.FutureTask.run(FutureTask.java:237)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:818)

记录错误。

  def make_photos
    photos.size.upto(6).each { photos.build }
  end

0 个答案:

没有答案