CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Q.dino con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 11 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 7 su 7
Discussione:

WebService Out Of Memory

Se questa discussione ti č stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jul 2012
    Messaggi
    22

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    WebService Out Of Memory

    Ciao a tutti,
    Effettuando una chiamata a webservice .net il telefono mi va in outofmemory.
    Ho cercato in google ma la maggior parte delle soluzioni non mi risolvono il problema (
    Spero che qualcuno di voi mi possa aiutare .

    Ciao
    Renato

  2.  
  3. #2
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Localitą
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    Hai implementato ksoap2? Puoi postare il logcat dell'errore?

    Inviato dal mio Galaxy Nexus con Tapatalk 2
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

  4. #3
    Baby Droid


    Registrato dal
    Jul 2012
    Messaggi
    22

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da frank17next Visualizza il messaggio
    Hai implementato ksoap2? Puoi postare il logcat dell'errore?

    Inviato dal mio Galaxy Nexus con Tapatalk 2
    l'errore č solo out of memory. perč ecco il logcat.

    spero in una mano

    codice:
    10-18 10:34:47.112: E/dalvikvm-heap(546): Out of memory on a 33553936-byte allocation.
    10-18 10:34:47.112: I/dalvikvm(546): "AsyncTask #1" prio=5 tid=11 RUNNABLE
    10-18 10:34:47.112: I/dalvikvm(546):   | group="main" sCount=0 dsCount=0 obj=0x413f7ec0 self=0x1941b8
    10-18 10:34:47.112: I/dalvikvm(546):   | sysTid=565 nice=10 sched=0/0 cgrp=bg_non_interactive handle=2401696
    10-18 10:34:47.112: I/dalvikvm(546):   | schedstat=( 24535987471 184956447367 2276 ) utm=1713 stm=740 core=0
    10-18 10:34:47.112: I/dalvikvm(546):   at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:~91)
    10-18 10:34:47.112: I/dalvikvm(546):   at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201)
    10-18 10:34:47.112: I/dalvikvm(546):   at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:204)
    10-18 10:34:47.112: I/dalvikvm(546):   at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:96)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync.dosync(webservicesync.java:331)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync.access$0(webservicesync.java:183)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync$sTask.doInBackground(webservicesync.java:542)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync$sTask.doInBackground(webservicesync.java:1)
    10-18 10:34:47.112: I/dalvikvm(546):   at android.os.AsyncTask$2.call(AsyncTask.java:264)
    10-18 10:34:47.112: I/dalvikvm(546):   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    10-18 10:34:47.112: I/dalvikvm(546):   at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    10-18 10:34:47.112: I/dalvikvm(546):   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
    10-18 10:34:47.112: I/dalvikvm(546):   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    10-18 10:34:47.112: I/dalvikvm(546):   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    10-18 10:34:47.112: I/dalvikvm(546):   at java.lang.Thread.run(Thread.java:856)
    10-18 10:34:47.433: W/System.err(546): java.lang.OutOfMemoryError
    10-18 10:34:47.482: W/System.err(546): 	at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:91)
    10-18 10:34:47.482: W/System.err(546): 	at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201)
    10-18 10:34:47.552: W/System.err(546): 	at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:204)
    10-18 10:34:47.552: W/System.err(546): 	at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:96)
    10-18 10:34:47.572: W/System.err(546): 	at skolidspeak.test.test.webservicesync.dosync(webservicesync.java:331)
    10-18 10:34:47.634: W/System.err(546): 	at skolidspeak.test.test.webservicesync.access$0(webservicesync.java:183)
    10-18 10:34:47.663: W/System.err(546): 	at skolidspeak.test.test.webservicesync$sTask.doInBackground(webservicesync.java:542)
    10-18 10:34:47.742: W/System.err(546): 	at skolidspeak.test.test.webservicesync$sTask.doInBackground(webservicesync.java:1)
    10-18 10:34:47.752: W/System.err(546): 	at android.os.AsyncTask$2.call(AsyncTask.java:264)
    10-18 10:34:47.852: W/System.err(546): 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    10-18 10:34:47.862: W/System.err(546): 	at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    10-18 10:34:47.862: W/System.err(546): 	at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
    10-18 10:34:48.004: W/System.err(546): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    10-18 10:34:48.102: W/System.err(546): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    10-18 10:34:48.262: W/System.err(546): 	at java.lang.Thread.run(Thread.java:856)

    ciao Renato

  5. #4
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Localitą
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    Quote Originariamente inviato da skolidspeak Visualizza il messaggio
    l'errore č solo out of memory. perč ecco il logcat.

    spero in una mano

    codice:
    10-18 10:34:47.112: E/dalvikvm-heap(546): Out of memory on a 33553936-byte allocation.
    10-18 10:34:47.112: I/dalvikvm(546): "AsyncTask #1" prio=5 tid=11 RUNNABLE
    10-18 10:34:47.112: I/dalvikvm(546):   | group="main" sCount=0 dsCount=0 obj=0x413f7ec0 self=0x1941b8
    10-18 10:34:47.112: I/dalvikvm(546):   | sysTid=565 nice=10 sched=0/0 cgrp=bg_non_interactive handle=2401696
    10-18 10:34:47.112: I/dalvikvm(546):   | schedstat=( 24535987471 184956447367 2276 ) utm=1713 stm=740 core=0
    10-18 10:34:47.112: I/dalvikvm(546):   at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:~91)
    10-18 10:34:47.112: I/dalvikvm(546):   at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201)
    10-18 10:34:47.112: I/dalvikvm(546):   at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:204)
    10-18 10:34:47.112: I/dalvikvm(546):   at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:96)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync.dosync(webservicesync.java:331)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync.access$0(webservicesync.java:183)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync$sTask.doInBackground(webservicesync.java:542)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync$sTask.doInBackground(webservicesync.java:1)
    10-18 10:34:47.112: I/dalvikvm(546):   at android.os.AsyncTask$2.call(AsyncTask.java:264)
    10-18 10:34:47.112: I/dalvikvm(546):   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    10-18 10:34:47.112: I/dalvikvm(546):   at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    10-18 10:34:47.112: I/dalvikvm(546):   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
    10-18 10:34:47.112: I/dalvikvm(546):   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    10-18 10:34:47.112: I/dalvikvm(546):   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    10-18 10:34:47.112: I/dalvikvm(546):   at java.lang.Thread.run(Thread.java:856)
    10-18 10:34:47.433: W/System.err(546): java.lang.OutOfMemoryError
    10-18 10:34:47.482: W/System.err(546): 	at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:91)
    10-18 10:34:47.482: W/System.err(546): 	at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201)
    10-18 10:34:47.552: W/System.err(546): 	at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:204)
    10-18 10:34:47.552: W/System.err(546): 	at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:96)
    10-18 10:34:47.572: W/System.err(546): 	at skolidspeak.test.test.webservicesync.dosync(webservicesync.java:331)
    10-18 10:34:47.634: W/System.err(546): 	at skolidspeak.test.test.webservicesync.access$0(webservicesync.java:183)
    10-18 10:34:47.663: W/System.err(546): 	at skolidspeak.test.test.webservicesync$sTask.doInBackground(webservicesync.java:542)
    10-18 10:34:47.742: W/System.err(546): 	at skolidspeak.test.test.webservicesync$sTask.doInBackground(webservicesync.java:1)
    10-18 10:34:47.752: W/System.err(546): 	at android.os.AsyncTask$2.call(AsyncTask.java:264)
    10-18 10:34:47.852: W/System.err(546): 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    10-18 10:34:47.862: W/System.err(546): 	at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    10-18 10:34:47.862: W/System.err(546): 	at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
    10-18 10:34:48.004: W/System.err(546): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    10-18 10:34:48.102: W/System.err(546): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    10-18 10:34:48.262: W/System.err(546): 	at java.lang.Thread.run(Thread.java:856)

    ciao Renato
    Hum, potrebbe essere che la risposta soap sia estremamente grande.

    Nelle righe di codice del codice sorgente indicato nel logcat:

    codice:
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync.dosync(webservicesync.java:331)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync.access$0(webservicesync.java:183)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync$sTask.doInBackground(webservicesync.java:542)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync$sTask.doInBackground(webservicesync.java:1)
    che operazioni svolgi?

    Ad ogni modo, se č vero che la risposta soap č davvero molto grande, dovrai provare e memorizzarla direttamente in un file su sd (FileOutputStream/ OutputStreamWriter), per poi leggerla con un Xmlparser
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

  6. #5
    Baby Droid


    Registrato dal
    Jul 2012
    Messaggi
    22

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da frank17next Visualizza il messaggio
    Hum, potrebbe essere che la risposta soap sia estremamente grande.

    Nelle righe di codice del codice sorgente indicato nel logcat:

    codice:
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync.dosync(webservicesync.java:331)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync.access$0(webservicesync.java:183)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync$sTask.doInBackground(webservicesync.java:542)
    10-18 10:34:47.112: I/dalvikvm(546):   at skolidspeak.test.test.webservicesync$sTask.doInBackground(webservicesync.java:1)
    che operazioni svolgi?

    Ad ogni modo, se č vero che la risposta soap č davvero molto grande, dovrai provare e memorizzarla direttamente in un file su sd (FileOutputStream/ OutputStreamWriter), per poi leggerla con un Xmlparser
    ti confermo che č mi ritorna un soap estremamente grande tu hai un link con un esempio per gestire FileOutputStream/ OutputStreamWriter?

    comunque nella activity faccio la chiamata al webservice e scrivo su di un database basta tutto qui.

    Grazie della risposta

    ciao
    Renato

  7. #6
    Senior Droid L'avatar di frank17next


    Registrato dal
    Jan 2010
    Localitą
    Campobasso
    Messaggi
    739
    Smartphone
    GNexus, Galaxy Note, GT 10.1

    Ringraziamenti
    16
    Ringraziato 143 volte in 102 Posts
    Predefinito

    Quindi hai gią verificato che č il ritorno soap ad essere grande.

    Hai individuato esattamente la riga del codice sorgente java da dove si inizia a propagare l'errore di out of memory, potresti postare il metodo dove č contenuta?

    p.s. al di lą della memorizzazione in db, dove memorizzi la risposta al termine della chiamata attualmente?

    Che ordine di grandezza c'č? Io, ad esempio, manipolo delle immagini convertite in Base64 di circa 12/15kb senza alcun errore di out of memory
    Nexus 6 - 5.0.1 Stock
    Nexus 5 - 5.0.1 Stock + Root
    Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
    Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
    ------------------------------------------------------------------------
    https://sites.google.com/site/frank17next/

  8. #7
    Baby Droid


    Registrato dal
    Jul 2012
    Messaggi
    22

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Scusa se ti rispondo solo oggi ma non ero a casa confermo che la il soap č grande molto grande

    Quote Originariamente inviato da frank17next Visualizza il messaggio
    Quindi hai gią verificato che č il ritorno soap ad essere grande.

    Hai individuato esattamente la riga del codice sorgente java da dove si inizia a propagare l'errore di out of memory, potresti postare il metodo dove č contenuta?

    p.s. al di lą della memorizzazione in db, dove memorizzi la risposta al termine della chiamata attualmente?

    Che ordine di grandezza c'č? Io, ad esempio, manipolo delle immagini convertite in Base64 di circa 12/15kb senza alcun errore di out of memory
    l'errore me lo da in fase di chiamata.
    il mio problema č che non so mai la dimensione della risposta perchč dipende da quante attivitą scarico, e dipendono a loro volta dalla data di modifica.


    codice:
     if(att.isChecked()==true){ 
        	 String response=null;
        	// VMRuntime.getRuntime().setMinimumHeapSize("240M") ;
        	 ActivityManager am = ((ActivityManager)getSystemService(Activity.ACTIVITY_SERVICE));
         	int largeMemory = am.getLargeMemoryClass();
         	int memory= am.getMemoryClass();
         	
         //faccio la chiamata e passo un codicche mi identificherą la chiamata anche al ritorno
           	final	HttpTransportSE androidHttpTransport1 = new HttpTransportSE(URL,TIMEOUT);
        	try {androidHttpTransport1.debug=true;
        	
        		//this is the actual part that will call the webservice
        		androidHttpTransport1.call("http://tempuri.org/GetAttivita", envelope1);
    ;      // response=androidHttpTransport1.responseDump;
        	
        	} catch (Exception e) {String ss = e.toString();
        		write(ss);
        		e.printStackTrace();}
        SoapObject 	result1 = null;
        	
        	Object objTestNull = null;//in intestazione
        	objTestNull = envelope1.bodyIn; 
        
        	
        	if (objTestNull!=null){
        		
        		try {
    				result1 =  (SoapObject) envelope1.getResponse();
    			} catch (SoapFault e) {write("get response att");
    				String ss = e.toString();
    				write(ss);
    				e.printStackTrace();
    			}
        		
        	for (int i = 0; i < result1.getPropertyCount(); i++){
      	int p=result1.getPropertyCount();
      	
    		// TODO Auto-generated catch block
    	
        	objTestNull = null;
        	  if (result1 != null){
        		  Boolean ese=null;
        		  //String codat,String op,String codanag,Boolean ese,String grup,String rif,String obj,String tipo,String desc,String rich,String dat,String ora,String codes
        		  String codat= ((SoapObject) result1.getProperty(i)).getProperty("Id").toString();
        		  String op= ((SoapObject) result1.getProperty(i)).getProperty("CodiceUtente").toString();
        		   ese=Boolean.getBoolean(((SoapObject) result1.getProperty(i)).getProperty("isEseguito").toString());
        		  String codanag= ((SoapObject) result1.getProperty(i)).getProperty("CodiceAnagrafica").toString();
        		  String grup= ((SoapObject) result1.getProperty(i)).getProperty("CodiceGruppoAttivita").toString();
        		  String rif= ((SoapObject) result1.getProperty(i)).getProperty("ContattoNominativo").toString();
        		  String obj= ((SoapObject) result1.getProperty(i)).getProperty("Oggetto").toString();
        		  String tipo= ((SoapObject) result1.getProperty(i)).getProperty("CodiceTipoAttivita").toString();
        		  String desc= ((SoapObject) result1.getProperty(i)).getProperty("Descrizione").toString();
        		  String rich= ((SoapObject) result1.getProperty(i)).getProperty("Richiesta").toString();
        		  String dat= ((SoapObject) result1.getProperty(i)).getProperty("DataEffettivo").toString();
        		  String ora= ((SoapObject) result1.getProperty(i)).getProperty("OraEffettivo").toString();
        		  String codes= ((SoapObject) result1.getProperty(i)).getProperty("CodiceEsito").toString();
        	
        	
         	
        		//carico attivitą in database
        		 writedbatt(Utente,codat,op,codanag,ese,grup,rif,obj,tipo,desc,rich,dat,ora,codes);
        		 String oper=Ut.getText().toString();
        		 if(oper.compareTo(op)==0/*&& ese==true*/) 
        			 writedbscad(Utente,codat,op,codanag,ese,grup,rif,obj,tipo,desc,rich,dat,ora,codes);
        		
        		    System.gc();
        		    Runtime.getRuntime().gc();
    
        		 
        		 
        	 }
        	}
        }
        	
        }//FINE INSERT ATT

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy