2012-04-16 22 views
6

Sto usando java.lang.OutOfMemoryError quando uso bitmap per mostrare immagini di grandi dimensioni.
Per il ridimensionamento della bitmap, ho fatto riferimento al seguente link Save Bitmap and BitmapFactory.decodeFile.Android: come risolvere Bitmap java.lang.OutOfMemoryError?

mio logcat è la seguente:

FATAL EXCEPTION: main 
java.lang.OutOfMemoryError 
    at  android.graphics.Bitmap.nativeCreate(Native Method) 
    at  android.graphics.Bitmap.createBitmap(Bitmap.java:604) 
    at  android.graphics.Bitmap.createBitmap(Bitmap.java:551) 
    at  com.android.restaurant.DescriptionPage.getResizedBitmap(DescriptionPage.java:327) 
    at   com.android.restaurant.DescriptionPage.setDetailsIntoLayout(DescriptionPage.java:172) 
    at com.android.restaurant.DescriptionPage.onCreate(DescriptionPage.java:101) 
    at android.app.Activity.performCreate(Activity.java:4397) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834) 
    at android.app.ActivityThread.access$500(ActivityThread.java:125) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:132) 
    at android.app.ActivityThread.main(ActivityThread.java:4135) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:491) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
    at dalvik.system.NativeStart.main(Native Method) 
+1

C'è sia qualcosa di sbagliato con il codice, o il telefono non dispone di memoria sufficiente. In ogni caso, non possiamo aiutarti, almeno finché non pubblichi il tuo codice. – Hassan

+0

@ Raman-Mystry: fare riferimento all'articolo "Visualizzazione di immagini bitmap in modo efficiente" di seguito. Se hai ancora problemi, per favore 1) inserisci il codice pertinente, 2) dicci qualcosa sulla tua bitmap (come quanto è grande in h/w e filesize!), 3) dicci quanta memoria ha il tuo sistema prima il tentativo di caricare la bitmap – paulsm4

+1

[Provalo] [1] [1]: http://stackoverflow.com/questions/10081008/outofmemoryerror-in-game-with-many-small-images/10086141 # comment12999643_10086141 Ti aiuterà davvero. –

risposta

5

Dal momento che non hai postato il tuo codice è difficile sapere se ci sia un bug o probabilmente il codice inefficaci che può essere migliorato.

Ma generalmente la memoria JVM è limitata, quindi il caricamento di un'immagine grande può causare OutOfMemoryError. Puoi provare ad aumentare la memoria JVM usando l'opzione -Xmx. Questo è il primo e il modo più semplice.

Un altro modo è diminuire l'immagine (se possibile). O probabilmente usi un formato diverso da BMP (ad esempio JPG). Garantisce una buona qualità e richiede meno memoria.

0

La sfida nello sviluppo di applicazioni mobili è che la memoria è limitata.

Per prima cosa mi viene in mente di utilizzare PNG (Portable Network graphics) anziché i BitMaps (se possibile).

Oltre a questo, sembra che la questione è già esistente consultare questa: - http://code.google.com/p/android/issues/detail?id=8488

Problemi correlati