Autore Topic: ddmlib] Connessione interrotta dal software del computer host  (Letto 2156 volte)

Offline DjWilliams

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    tablet
  • Sistema operativo:
    windows vista
ddmlib] Connessione interrotta dal software del computer host
« il: 23 Luglio 2013, 11:23:48 CEST »
0
Salve sto realizzando una applicazione android che si collega ad un webservice rest per recuperare delle coordinate geografiche che poi deve disegnare su una mappa di google.

Per recuperare le coordinate dal WS ho usato la classe AsyncTask ma appena clicco su run, prima ancora di scegliere il dispositivo fisico o virtuale compare il seguente messaggio di errore :

Could not open Selected VM debug port (8700). Make sure you do not have another instance of DDMS or of the eclipse plugin running. If it's being used by something else, choose a new port number in the preferences.

Se procedo al running dalla consolle compaiono i seguenti messaggi :

[2013-07-23 10:56:30 - ddms] Can't bind to local 8600 for debugger
[2013-07-23 10:56:30 - ddmlib] Connessione interrotta dal software del computer host
java.io.IOException: Connessione interrotta dal software del computer host
   at sun.nio.ch.SocketDispatcher.write0(Native Method)
   at sun.nio.ch.SocketDispatcher.write(Unknown Source)
   at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
   at sun.nio.ch.IOUtil.write(Unknown Source)
   at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
   at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
   at com.android.ddmlib.Client.sendAndConsume(Client.java:607)
   at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
   at com.android.ddmlib.Client.requestAllocationStatus(Client.java:453)
   at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:835)
   at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:803)
   at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:621)
   at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)
   at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580)

L'applicazione parte ma non setta i Marker desiderati sulla mia mappa!

Avevo usato in precedenza la classe AsyncTask per fare una login ed è andato tutto liscio, adesso non capisco perchè l'ADT mi da qst risultati.

Confido in un vostro aiuto.




Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:ddmlib] Connessione interrotta dal software del computer host
« Risposta #1 il: 23 Luglio 2013, 11:36:58 CEST »
0
Escluderei un problema legato agli AsyncTask, mi sembra più un problema di emulatore e connessione col debugger.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline agenio

  • Utente junior
  • **
  • Post: 77
  • Respect: +11
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Moto G
  • Sistema operativo:
    Windows 8.1
Re:ddmlib] Connessione interrotta dal software del computer host
« Risposta #2 il: 23 Luglio 2013, 14:08:47 CEST »
0
a che indirizzo ip fai la richiesta?

Offline DjWilliams

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    tablet
  • Sistema operativo:
    windows vista
Re:ddmlib] Connessione interrotta dal software del computer host
« Risposta #3 il: 23 Luglio 2013, 14:24:10 CEST »
0
L'ip è quello relativo alla mia macchina locale. Ho un web service che avvio solo quando mi occorre e quindi ne faccio il deploy in locale.

l'uri richiamata e del tipo http://IP:PORTO/percorso_risorsa_ws...

L'indirizzo tra l'altro è corretto.

Non capisco perche su un'altro progetto android in cui avevo sviluppato una login con le stesse metodologie va tutto bene e qui invece da problemi...

Tra l'altro se metto tra commenti /* */ tutto il codice relativo all'asynctask la console non da più questo tipo di messaggi...

Post unito: 24 Luglio 2013, 00:21:09 CEST
Sono riuscito a risolvere la prima parte del problema ovvero l'errore che riportato nella console.
Ho inserito diversi try/catch e come per magia la connessione non veniva più interrotta.

Adesso però l'applicazione si arresta precisamente quando parte il parsing del documento xml che scarico dal web service.

Di seguito vi posto alcuni tagli di codice:
Codice (Java): [Seleziona]
 

private class DownloadFileStrutt extends AsyncTask<String,Void,InputStream>{
       
        @Override
         protected InputStream doInBackground(String... params) {
          
           InputStream is=null;
           try{
              URL url_res = new URL (params[0]);
               //L'oggetto conn rappresenta la connessione
               HttpURLConnection conn = (HttpURLConnection)url_res.openConnection();
               // impostiamo il metodo della connessione
               conn.setRequestMethod("GET");
              
               conn.connect();
              
               int status=conn.getResponseCode();
                           
                             
               Log.i("Status", "connessione"+status);
              
               if (status>=200 && status <=299)              
               is=conn.getInputStream();
              
               conn.disconnect();
              
              
           }catch(Exception e){          }
          
       
           return is;
       
       
    }
   
    protected void onPostExecute(InputStream result) {
       if (result!=null){
       txc.setText("Prova_stampa");
       try{
           
         
            DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
            Document  document =null;
           
            try{
            DocumentBuilder builder = documentFactory.newDocumentBuilder();
            document = builder.parse(result);                                                                         ***
           
           }catch(ParserConfigurationException ex){ex.printStackTrace();          }
            catch(Exception e){e.printStackTrace();          }
           
            NodeList coord = document.getElementsByTagName("Coordinate");
           // System.out.println("Totale coordinate : "+coord.getLength());
            int tot_coord =coord.getLength();
           
            double vett_lat[]= new double[tot_coord];
            double vett_longi[]=new double[tot_coord];
           
            for(int i=0;i<coord.getLength();i++){
                Node nodo =coord.item(i);
                               
                if(nodo.getNodeType()==Node.ELEMENT_NODE){
                    Element coordinata = (Element)nodo;
                   
                    String lat=coordinata.getElementsByTagName("Latitudine").item(0).getFirstChild().getNodeValue();
                    String longi=coordinata.getElementsByTagName("Longitudine").item(0).getFirstChild().getNodeValue();
                   
                    //System.out.println("Latitudine : "+lat);
                    //System.out.println("Longitudine : "+longi);
                    vett_lat=Double.parseDouble(lat);
                    vett_longi=Double.parseDouble(longi);
                                     
                   
                }
            }
            for(int i=0;i<tot_coord;i++){
               
              /* LatLng STRUTTURA = new LatLng(vett_lat,vett_longi);
               Marker nuovo = map.addMarker(new MarkerOptions()
                    .position(STRUTTURA)
                    .title("Struttura")
                    .snippet("bla-bla")
                    .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));*/
               
               txc.setText(vett_lat+""+vett_longi);
               
                }
           
           
        }catch(Exception e1){
           Log.d("NetworkingActivity", e1.getLocalizedMessage());
        }       
       
       }//end If
       
           
   
    }



 
« Ultima modifica: 24 Luglio 2013, 00:21:09 CEST da DjWilliams, Reason: Merged DoublePost »