簡體   English   中英

致命異常:AsyncTask#1

[英]FATAL EXCEPTION: AsyncTask#1

抱歉,我剛接觸Android,請多多包涵。 我正在嘗試設置一個在加載JSON時顯示的啟動屏幕。 當我啟動該應用程序時,“啟動畫面”屏幕會第一次顯示幾秒鍾,然后崩潰。 此后每當我嘗試啟動該應用程序時,該應用程序都會崩潰,甚至不會顯示啟動屏幕。

從BaseActivity.java檢索JSONTask類

    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

提前致謝!

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM