Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407

    [Android] Upload immagine: Out of memory on a 31961104-byte allocation

    Upload immagine: Out of memory on a 31961104-byte allocation


    Ciao, ho un problema quando provo ad inviare un file immagine dal mio smartphone ad un server remoto tramite un webservice.


    L'errore è il seguente dal LogCat:


    codice:
    09-25 11:48:54.175: W/Choreographer(12979): Already have a pending vsync event.  There should only be one at a time.
    09-25 11:48:54.235: D/dalvikvm(12979): GC_FOR_ALLOC freed 1497K, 19% free 46108K/56648K, paused 54ms, total 54ms
    09-25 11:48:54.235: I/dalvikvm-heap(12979): Forcing collection of SoftReferences for 31961104-byte allocation
    09-25 11:48:54.280: D/dalvikvm(12979): GC_BEFORE_OOM freed 10K, 19% free 46098K/56648K, paused 43ms, total 43ms
    09-25 11:48:54.280: E/dalvikvm-heap(12979): Out of memory on a 31961104-byte allocation.
    09-25 11:48:54.280: I/dalvikvm(12979): "Thread-9829" prio=5 tid=11 RUNNABLE
    09-25 11:48:54.280: I/dalvikvm(12979):   | group="main" sCount=0 dsCount=0 obj=0x425e5cf8 self=0x5994b920
    09-25 11:48:54.280: I/dalvikvm(12979):   | sysTid=13515 nice=0 sched=0/0 cgrp=apps handle=1498943496
    09-25 11:48:54.280: I/dalvikvm(12979):   | state=R schedstat=( 87020166 10222375 29 ) utm=7 stm=1 core=1
    09-25 11:48:54.280: I/dalvikvm(12979):   at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
    09-25 11:48:54.285: I/dalvikvm(12979):   at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:623)
    09-25 11:48:54.285: I/dalvikvm(12979):   at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:378)
    09-25 11:48:54.285: I/dalvikvm(12979):   at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:417)
    09-25 11:48:54.285: I/dalvikvm(12979):   at com.up.upload.MainActivity.UploadImage(MainActivity.java:202)
    09-25 11:48:54.285: I/dalvikvm(12979):   at com.up.upload.MainActivity$2.run(MainActivity.java:148)
    09-25 11:48:54.285: I/dalvikvm(12979):   at java.lang.Thread.run(Thread.java:841)
    09-25 11:48:54.295: D/skia(12979): --- decoder->decode returned false
    09-25 11:48:54.295: W/dalvikvm(12979): threadid=11: thread exiting with uncaught exception (group=0x41b55700)
    09-25 11:48:54.300: E/AndroidRuntime(12979): FATAL EXCEPTION: Thread-9829
    09-25 11:48:54.300: E/AndroidRuntime(12979): java.lang.OutOfMemoryError
    09-25 11:48:54.300: E/AndroidRuntime(12979):     at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
    09-25 11:48:54.300: E/AndroidRuntime(12979):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:623)
    09-25 11:48:54.300: E/AndroidRuntime(12979):     at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:378)
    09-25 11:48:54.300: E/AndroidRuntime(12979):     at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:417)
    09-25 11:48:54.300: E/AndroidRuntime(12979):     at com.up.upload.MainActivity.UploadImage(MainActivity.java:202)
    09-25 11:48:54.300: E/AndroidRuntime(12979):     at com.up.upload.MainActivity$2.run(MainActivity.java:148)
    09-25 11:48:54.300: E/AndroidRuntime(12979):     at java.lang.Thread.run(Thread.java:841)
    Questo il codice java in uso, cosa posso fare di più?
    Grazie
    codice:
     	public void UploadImage(String image, String imageName) {
    
    		SoapObject Request = new SoapObject(WSDL_TARGET_NAMESPACE,
    				OPERATION_NAME);
    
    
    		File mFile = new File(imagepath);
    		ByteArrayOutputStream stream = new ByteArrayOutputStream();
    		Bitmap bmp = BitmapFactory.decodeFile(mFile.getAbsolutePath());
    		bmp.recycle();
    		bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
    		byte[] byteArray = stream.toByteArray();
    		Request.addProperty("docbinaryarray", byteArray);
    
    
    		SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
    				SoapEnvelope.VER11);
    
    
    		envelope.dotNet = true;
    
    
    		envelope.setOutputSoapObject(Request);
    
    
    		HttpTransportSE androidHttpTransport = new HttpTransportSE(SOAP_ADDRESS);
    		androidHttpTransport.debug = true;
    
    
    		try {
    
    
    			androidHttpTransport.call(SOAP_ACTION, envelope);
    
    
    			SoapPrimitive resultString = (SoapPrimitive) envelope.getResponse();
    			Log.d("MainActivity.class", "Valore restituito: " + resultString);
    
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    
    
    
    
    
    			new Thread(new Runnable() {
    				public void run() {
    
    
    					try {
    
    
    						String lStr = imagepath;
    						UploadImage(
    								imagepath,
    								lStr.substring(lStr.lastIndexOf("/")).replace(
    										"/", ""));
    
    
    					} catch (Exception e) {
    						e.printStackTrace();
    						Log.e("MainActivity.class", "Errore nel metodo 2...", e);
    					}
    				}
    			}).start();
    Ultima modifica di ubbicom; 25-09-2014 a 12:05

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.