2012-04-16 14 views
6

बड़ी छवियों को दिखाने के लिए बिटमैप का उपयोग करते समय मुझे java.lang.OutOfMemoryError मिल रहा है।
बिटमैप का आकार बदलने के लिए, मैंने निम्नलिखित लिंक Save Bitmap and BitmapFactory.decodeFile का संदर्भ दिया।एंड्रॉइड: बिटमैप java.lang.OutOfMemoryError कैसे हल करें?

मेरे logcat इस प्रकार है:

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

या तो कुछ अपने कोड के साथ गलत नहीं है, या फोन के लिए पर्याप्त स्मृति नहीं है। किसी भी तरह से, हम आपकी मदद नहीं कर सकते, कम से कम जब तक आप अपना कोड पोस्ट नहीं करते। – Hassan

+0

@ रमन-मिस्ट्री - कृपया नीचे दिए गए "बिट बिट्स कुशलतापूर्वक प्रदर्शित करें" आलेख देखें। यदि आपको अभी भी समस्याएं आ रही हैं, तो कृपया 1) प्रासंगिक कोड पोस्ट करें, 2) हमें अपने बिटमैप के बारे में कुछ बताएं (जैसे एच/डब्ल्यू और फाइलसाइज में कितना बड़ा है!), 3) हमें बताएं कि आपके सिस्टम में कितनी मेमोरी है बिटमैप लोड करने का प्रयास – paulsm4

+1

[यह प्रयास करें] [1] [1]: http://stackoverflow.com/questions/10081008/outofmemoryerror-in-game-with-many-small-images/10086141 # टिप्पणी 12 999643_10086141 यह वास्तव में आपकी मदद करेगा। –

उत्तर

5

चूंकि आप अपने कोड पोस्ट नहीं किया है यह जानने के लिए कि वहाँ एक बग या शायद अप्रभावी कोड है कि सुधार किया जा सकता है मुश्किल है।

लेकिन आम तौर पर जेवीएम मेमोरी सीमित है, इसलिए बड़ी छवि लोड करने से OutOfMemoryError हो सकता है। आप -Xmx विकल्प का उपयोग कर JVM स्मृति को बढ़ाने का प्रयास कर सकते हैं। यह पहला और सबसे आसान तरीका है।

अन्य तरीका आपकी छवि को कम करना है (यदि यह संभव है)। या शायद बीएमपी (उदा। जेपीजी) के अलावा प्रारूप का उपयोग करें। यह अच्छी गुणवत्ता की गारंटी देता है और कम स्मृति की आवश्यकता होती है।

0

मोबाइल एप्लिकेशन के विकास में चुनौती यह है कि आपके पास सीमित स्मृति है।

बिटकमैप्स (यदि संभव हो) के बजाय पीएनजी (पोर्टेबल नेटवर्क ग्राफिक्स) का उपयोग करने की कोशिश की गई है तो मेरे दिमाग में फंस गई पहली बात है।

इसके अलावा, ऐसा लगता है कि इस विद्यमान है इस मुद्दे को इस जाँच करें: - http://code.google.com/p/android/issues/detail?id=8488

संबंधित मुद्दे