Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我不知道如何解决(android.os.networkonmainthreadexception)_Android - Fatal编程技术网

我不知道如何解决(android.os.networkonmainthreadexception)

我不知道如何解决(android.os.networkonmainthreadexception),android,Android,我总是犯这个错误 public class FlightAvailabityGoActivity extends ListActivity { String[] monthName = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; date userDate=new date();

我总是犯这个错误

   public class FlightAvailabityGoActivity extends ListActivity {
String[] monthName = {"Jan", "Feb",
          "Mar", "Apr", "May", "Jun", "Jul",
          "Aug", "Sep", "Oct", "Nov",
          "Dec"
          };


date userDate=new date();
int DepDay=userDate.getDays();
int DepMonth=userDate.getMonths();

bean beanz=new bean();
private TextView fromToTextView;
Calendar calendar = new GregorianCalendar();
  String am_pm;
  String TAG="from";
  private TextView from,to;
  languages lang=new languages();
  String En_Ar=lang.getLang();
  Element dest;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {

    try{
    Log.v(TAG, "in go activity       " +TAG);

    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    setContentView(R.layout.listplaceholder_flightavailabity);
    if(En_Ar.equals("arabic"))
    {
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title_flightavailabity_ar);
   // from=(TextView)findViewById(R.id.fromText);
   // from.setText("  من  ");
   // to=(TextView)findViewById(R.id.toText);
    //to.setText("  إلى  ");
    Log.v(TAG, "1       " +TAG);
    }
    else
    {
          Log.v(TAG, "1       " +TAG);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,  
     R.layout.window_title_flightavailabity);
    }






    ////
    Bundle extras = getIntent().getExtras();

    String FromCity = extras.getString("from");
    String ToCity = extras.getString("to");
    Log.v(TAG, "from city after moving   " +FromCity);
    Log.v(TAG, "to city after moving   " +ToCity);






    ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
    ArrayList<HashMap<String, String>> mylist1 = new ArrayList<HashMap<String, String>>();

    Log.v(TAG, "2       " +TAG);
    //String xml = XMLfunctions.getXMLFlightAva(FromCity,ToCity);
    String xml=XMLfunctions.getXMLFlightAva(FromCity,ToCity);  // error is here
    Log.v(TAG, "3      " +TAG);  // this will not display
    xml=xml.trim();
    Log.v(TAG, "4       " +TAG);
这是一节课

             public class XMLfunctions {
             String TAG;



public final static Document XMLfromString(String xml){


    Document doc = null;

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    try {

        DocumentBuilder db = dbf.newDocumentBuilder();

        InputSource is = new InputSource();
        is.setCharacterStream(new StringReader(xml));
        doc = db.parse(is); 

    } catch (ParserConfigurationException e) {
        System.out.println("XML parse error: " + e.getMessage());
        return null;
    } catch (SAXException e) {
        System.out.println("Wrong XML file structure: " + e.getMessage());
        return null;
    } catch (IOException e) {
        System.out.println("I/O exeption: " + e.getMessage());
        return null;
    }

    return doc;

}

/** Returns element value
  * @param elem element (it is XML tag)
  * @return Element value otherwise empty String
  */
 public final static String getElementValue( Node elem ) {
     Node kid;
     if( elem != null){
         if (elem.hasChildNodes()){
             for( kid = elem.getFirstChild(); kid != null; kid = kid.getNextSibling() ){
                 if( kid.getNodeType() == Node.TEXT_NODE  ){
                     return kid.getNodeValue();
                 }
             }
         }
     }
     return "";
 }
 ////////////////////////
 public static String getXMLFlightInfo(String Y_or_T){   
        String line = null;
        String TAG="TAG";
        date userDate=new date();
        int DepDay=userDate.getDays();
        int DepMonth=userDate.getMonths();



        try {

            DefaultHttpClient httpClient = new DefaultHttpClient();
        //  HttpPost httpPost = new HttpPost("http://p-xr.com/xml");
            //HttpGet httpPost=new HttpGet("http://10.128.11.206:9080/mobile/FlightSchdIphoneServlet?depCity="+fromCity+"&arrCity="+toCity+"&day="+DepDay+"&month="+DepMonth+"");
            //HttpGet httpPost=new HttpGet("http://mysv.net.sa/Web/mobile/FlightAvailIphoneServlet?depCity=JED&arrCity=RUH&day=29&month=11&submit=+GO+");
            HttpGet httpPost=new HttpGet("http://10.131.13.43:9080/onlineSMS/xmlFlightInfo.html");

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            line = EntityUtils.toString(httpEntity);



        } catch (UnsupportedEncodingException e) {
            line = "<array status=\"error\"><msg>Can't connect to server</msg></array>";
        } catch (MalformedURLException e) {
            line = "<array status=\"error\"><msg>Can't connect to server</msg></array>";
        } catch (IOException e) {
            line = "<array status=\"error\"><msg>Can't connect to server</msg></array>";
        }

        return line;

}
公共类函数{
字符串标签;
公共最终静态文档XMLfromString(字符串xml){
单据单据=空;
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
试一试{
DocumentBuilder db=dbf.newDocumentBuilder();
InputSource is=新的InputSource();
is.setCharacterStream(新的StringReader(xml));
doc=db.parse(is);
}捕获(ParserConfiguration异常e){
System.out.println(“XML解析错误:+e.getMessage());
返回null;
}捕获(SAXE异常){
System.out.println(“错误的XML文件结构:+e.getMessage());
返回null;
}捕获(IOE异常){
System.out.println(“I/O验证:+e.getMessage());
返回null;
}
退货单;
}
/**返回元素值
*@param elem元素(它是XML标记)
*@返回元素值,否则为空字符串
*/
公共最终静态字符串getElementValue(节点元素){
节点儿童;
if(elem!=null){
if(elem.hasChildNodes()){
for(kid=elem.getFirstChild();kid!=null;kid=kid.getNextSibling()){
if(kid.getNodeType()==Node.TEXT\u节点){
return kid.getNodeValue();
}
}
}
}
返回“”;
}
////////////////////////
公共静态字符串getXMLFlightInfo(字符串Y_或T){
字符串行=null;
String TAG=“TAG”;
date userDate=新日期();
int DepDay=userDate.getDays();
int depmount=userDate.getMonths();
试一试{
DefaultHttpClient httpClient=新的DefaultHttpClient();
//HttpPost HttpPost=新的HttpPost(“http://p-xr.com/xml");
//HttpGet httpPost=新的HttpGet(“http://10.128.11.206:9080/mobile/FlightSchdIphoneServlet?depCity=“+fromCity+”&arrCity=“+toCity+”&day=“+DepDay+”&month=“+DepMonth+”);
//HttpGet httpPost=新的HttpGet(“http://mysv.net.sa/Web/mobile/FlightAvailIphoneServlet?depCity=JED&arrCity=RUH&day=29&month=11&submit=+GO+”;
HttpGet httpPost=新的HttpGet(“http://10.131.13.43:9080/onlineSMS/xmlFlightInfo.html");
HttpResponse HttpResponse=httpClient.execute(httpPost);
HttpEntity HttpEntity=httpResponse.getEntity();
line=EntityUtils.toString(httpEntity);
}捕获(不支持的编码异常e){
line=“无法连接到服务器”;
}捕获(格式错误){
line=“无法连接到服务器”;
}捕获(IOE异常){
line=“无法连接到服务器”;
}
回流线;
}
是从API级别9开始引入的,默认行为已在API级别11中更改,简而言之,API级别11不允许在UI线程上执行网络操作(包括HttpClient和HttpUrlConnection)

正确的策略是将网络操作移出UI线程,例如使用


希望对您有所帮助。

我是否只在oncreate()下添加上述代码,以及xmlfunction方法如何?我是否将其保留在if语句中,或者对我的问题表示歉意,但我是新来的this@user950003,此代码只需要在应用程序启动后运行一次,最好的位置是在MainActivity.onCreate()中在调用super.onCreate()之后和执行网络操作的任何调用之前。
             public class XMLfunctions {
             String TAG;



public final static Document XMLfromString(String xml){


    Document doc = null;

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    try {

        DocumentBuilder db = dbf.newDocumentBuilder();

        InputSource is = new InputSource();
        is.setCharacterStream(new StringReader(xml));
        doc = db.parse(is); 

    } catch (ParserConfigurationException e) {
        System.out.println("XML parse error: " + e.getMessage());
        return null;
    } catch (SAXException e) {
        System.out.println("Wrong XML file structure: " + e.getMessage());
        return null;
    } catch (IOException e) {
        System.out.println("I/O exeption: " + e.getMessage());
        return null;
    }

    return doc;

}

/** Returns element value
  * @param elem element (it is XML tag)
  * @return Element value otherwise empty String
  */
 public final static String getElementValue( Node elem ) {
     Node kid;
     if( elem != null){
         if (elem.hasChildNodes()){
             for( kid = elem.getFirstChild(); kid != null; kid = kid.getNextSibling() ){
                 if( kid.getNodeType() == Node.TEXT_NODE  ){
                     return kid.getNodeValue();
                 }
             }
         }
     }
     return "";
 }
 ////////////////////////
 public static String getXMLFlightInfo(String Y_or_T){   
        String line = null;
        String TAG="TAG";
        date userDate=new date();
        int DepDay=userDate.getDays();
        int DepMonth=userDate.getMonths();



        try {

            DefaultHttpClient httpClient = new DefaultHttpClient();
        //  HttpPost httpPost = new HttpPost("http://p-xr.com/xml");
            //HttpGet httpPost=new HttpGet("http://10.128.11.206:9080/mobile/FlightSchdIphoneServlet?depCity="+fromCity+"&arrCity="+toCity+"&day="+DepDay+"&month="+DepMonth+"");
            //HttpGet httpPost=new HttpGet("http://mysv.net.sa/Web/mobile/FlightAvailIphoneServlet?depCity=JED&arrCity=RUH&day=29&month=11&submit=+GO+");
            HttpGet httpPost=new HttpGet("http://10.131.13.43:9080/onlineSMS/xmlFlightInfo.html");

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            line = EntityUtils.toString(httpEntity);



        } catch (UnsupportedEncodingException e) {
            line = "<array status=\"error\"><msg>Can't connect to server</msg></array>";
        } catch (MalformedURLException e) {
            line = "<array status=\"error\"><msg>Can't connect to server</msg></array>";
        } catch (IOException e) {
            line = "<array status=\"error\"><msg>Can't connect to server</msg></array>";
        }

        return line;

}