2013-10-15 41 views
0

對不起,我對Android非常陌生,請耐心等待。我正在嘗試設置加載JSON時顯示的閃屏。當我啓動應用程序時,Splash屏幕首次顯示幾秒鐘,然後崩潰。每當我嘗試啓動應用程序後,它甚至沒有顯示啓動畫面崩潰。從BaseActivity.java致命例外:AsyncTask#1

RetrieveJSONTask類

public class RetreiveJSONTask extends AsyncTask<String, Void, String> { 

    protected String doInBackground(String... urls) { 
     Log.d("RetrieveJSONTask", "Begin fetching text."); 
     return fetchJSON(urls[0]); 
    } 

    protected void onPostExecute(String JSON) { 

    } 

FetchJSON方法:

public String fetchJSON(String URL) { 
    StringBuilder builder = new StringBuilder(); 
    AndroidHttpClient client = AndroidHttpClient.newInstance("Android"); 
    HttpGet httpGet = new HttpGet(URL); 
    // Download JSON file from LocalResearch 
    try { 
     HttpResponse response = client.execute(httpGet); 
     StatusLine statusLine = response.getStatusLine(); 
     int statusCode = statusLine.getStatusCode(); 
     if (statusCode == 200) { 
      HttpEntity entity = response.getEntity(); 
      InputStream content = entity.getContent(); 
      BufferedReader reader = new BufferedReader(
        new InputStreamReader(content)); 
      String line; 
      // Write line-by-line to StringBuilder 
      while ((line = reader.readLine()) != null) 
      { 
       Log.d(this.toString(), line); 
       builder.append(line); 
      } 
     } else { 
      Log.e(this.toString(), URL); 
      Log.e(this.toString(), "Failed to download file"); 
     } 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    if (client != null) 
     client.close(); 
    return builder.toString(); 
} 

SplashActivity onCreate方法:

public static ArrayList<Item> downloadedItems = new ArrayList<Item>(); 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_splash); 

    new RetreiveJSONTask() { 


     protected void onPostExecute(String JSON) 
     { 
      downloadedItems = parseJSON (JSON); 

      Intent i = new Intent(SplashActivity.this, MagazinePagesActivity.class); 
      startActivity(i); 

      // Closes the splash screen 
      finish(); 
     } 
    }.execute(sourceURL()); 
} 

錯誤日誌的第一碰撞:

10-15 19:43:13.504: D/RetrieveJSONTask(769): Begin fetching text. 
10-15 19:43:13.673: V/SlidingMenu(769): setting padding! 
10-15 19:43:13.744: D/libEGL(769): loaded /system/lib/egl/libEGL_emulation.so 
10-15 19:43:13.754: D/(769): HostConnection::get() New Host Connection established 0x2a0ef958, tid 769 
10-15 19:43:13.793: D/libEGL(769): loaded /system/lib/egl/libGLESv1_CM_emulation.so 
10-15 19:43:13.804: D/libEGL(769): loaded /system/lib/egl/libGLESv2_emulation.so 
10-15 19:43:13.874: W/EGL_emulation(769): eglSurfaceAttrib not implemented 
10-15 19:43:13.884: D/OpenGLRenderer(769): Enabling debug mode 0 
10-15 19:43:13.984: V/CustomViewBehind(769): behind INVISIBLE 
10-15 19:43:13.984: W/View(769): requestLayout() improperly called by android.widget.ListView{417003e0 VFED.VC. ......ID 0,0-366,738 #102000a android:id/list} during layout: running second layout pass 
10-15 19:43:15.644: W/dalvikvm(769): threadid=11: thread exiting with uncaught exception (group=0x41465700) 
10-15 19:43:15.794: E/AndroidRuntime(769): FATAL EXCEPTION: AsyncTask #1 
10-15 19:43:15.794: E/AndroidRuntime(769): java.lang.RuntimeException: An error occured  while executing doInBackground() 
10-15 19:43:15.794: E/AndroidRuntime(769): at  android.os.AsyncTask$3.done(AsyncTask.java:299) 
10-15 19:43:15.794: E/AndroidRuntime(769): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352) 
10-15 19:43:15.794: E/AndroidRuntime(769): at java.util.concurrent.FutureTask.setException(FutureTask.java:219) 
10-15 19:43:15.794: E/AndroidRuntime(769): at java.util.concurrent.FutureTask.run(FutureTask.java:239) 
10-15 19:43:15.794: E/AndroidRuntime(769): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
10-15 19:43:15.794: E/AndroidRuntime(769): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
10-15 19:43:15.794: E/AndroidRuntime(769): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
10-15 19:43:15.794: E/AndroidRuntime(769): at java.lang.Thread.run(Thread.java:841) 
10-15 19:43:15.794: E/AndroidRuntime(769): Caused by: java.lang.NullPointerException 
10-15 19:43:15.794: E/AndroidRuntime(769): at java.net.URI.parseURI(URI.java:353) 
10-15 19:43:15.794: E/AndroidRuntime(769): at java.net.URI.<init>(URI.java:204) 
10-15 19:43:15.794: E/AndroidRuntime(769): at java.net.URI.create(URI.java:725) 
10-15 19:43:15.794: E/AndroidRuntime(769): at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:75) 
10-15 19:43:15.794: E/AndroidRuntime(769): at com.dailybruin.bruinframework.base.BaseActivity.fetchJSON(BaseActivity.java:112) 
10-15 19:43:15.794: E/AndroidRuntime(769): at com.dailybruin.bruinframework.base.BaseActivity$RetreiveJSONTask.doInBackground(BaseActivity.java:163) 
10-15 19:43:15.794: E/AndroidRuntime(769): at com.dailybruin.bruinframework.base.BaseActivity$RetreiveJSONTask.doInBackground(BaseActivity.java:1) 
10-15 19:43:15.794: E/AndroidRuntime(769): at android.os.AsyncTask$2.call(AsyncTask.java:287) 
10-15 19:43:15.794: E/AndroidRuntime(769): at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
10-15 19:43:15.794: E/AndroidRuntime(769): ... 4 more 

在此先感謝!

+0

「BaseActivity」中的第112行是什麼? –

+0

HttpGet httpGet = new HttpGet(URL); – user2884505

回答

0

我似乎傳遞給fetchJSON的URL爲null。

+0

忽略我最後的評論;我有一個調試語句,稱爲urls [0],再次導致NullPointer。謝謝! – user2884505

相關問題