即使在使用ASyncTask之后,udacity-sunshine应用程序也会崩溃

时间:2016-03-16 08:16:08

标签: android

3
4 - + - 4

rootView.findViewById(R.id.listview_forecast);

//this is the ForecastFragment file

package com.example.sumanth.sunshine1.app;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * A placeholder fragment containing a simple view.
 */
public class ForecastFragment extends Fragment {

    public ForecastFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView=inflater.inflate(R.layout.fragment_main, container, false);
        String[] forecastArray={
                "Mon 6/23 - Sunny - 31/17",
                 "Tue 6/24 - Foggy - 21/8",
                 "Wed 6/25 - Cloudy - 22/17",
                 "Thurs 6/26 - Rainy - 18/11",
                "Fri 6/27 - Foggy - 21/10",
                "Sat 6/28 - TRAPPED IN WEATHERSTATION - 23/18",
                "Sun 6/29 - Sunny - 20/7"
                                   };
                  List<String> weekForecast = new ArrayList<String>(Arrays.asList(forecastArray));



        ArrayAdapter<String> mForecastAdapter=new ArrayAdapter<String>(
                getActivity(),
                R.layout.list_item_forecast,
                R.id.list_item_forecast_textview,
                weekForecast

        );

        ListView listView=(ListView)    

该应用程序正常工作,直到此部分。但是在插入网络代码后,它不会打开(崩溃)        //这是fetchweathertask类,即使从上面的类移动网络代码后,应用程序仍然无法在手机上启动

        listView.setAdapter(mForecastAdapter);

        return  rootView;

    }

1 个答案:

答案 0 :(得分:0)

您需要在manifest.xml文件中包含Internet权限。

<uses-permission android:name="android.permission.INTERNET" />

没有它,您的应用程序将崩溃。

阅读此https://developer.android.com/training/basics/network-ops/connecting.html

我在未经许可的情况下测试了您的代码并且崩溃了。我也经过了许可测试,但没有崩溃。从那开始。

您还有其他事情要做,例如在您的网址字符串中包含API密钥。请记住,您可以在Udacity论坛上发布,目前有数百名学生在同一个项目上工作。