java.lang.OutOfMemoryError बिटमैपफ़ीचर। नेटिकडेकोडएसेट()




android error-handling (2)

नमस्ते मैं यातायात संकेतों के बारे में एक ऐप बना रहा हूँ यातायात संकेतों में। PNG प्रारूप हैं I इनमें से कुछ मैं क्षैतिज कैरोलव्यू में दिखा रहा हूँ लेकिन जब गतिविधियों को खोलने का प्रयास करते हैं, मुझे एंड्रॉइड मार्केट त्रुटि रिपोर्ट से यह त्रुटि मिलती है। यहां मेरी त्रुटि रिपोर्ट है:

<java.lang.RuntimeException: Unable to start activity ComponentInfo{com.besalti.svenskavagmarken/com.besalti.svenskavagmarken.varningsmarken}: android.view.InflateException: Binary XML file line #645: Error inflating class <unknown>
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
at android.app.ActivityThread.access$1500(ActivityThread.java:121)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3701)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #645: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:518)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:227)
at android.app.Activity.setContentView(Activity.java:1657)
at com.besalti.svenskavagmarken.varningsmarken.onCreate(varningsmarken.java:25)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623)
... 11 more
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
at android.view.LayoutInflater.createView(LayoutInflater.java:505)
... 26 more
Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:494)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:370)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:715)
at android.content.res.Resources.loadDrawable(Resources.java:1720)
at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
at android.widget.ImageView.<init>(ImageView.java:122)
at android.widget.ImageView.<init>(ImageView.java:112)
... 29 more>

क्या कोई मेरी मदद कर सकता है?


"बिटमैप आकार VM बजट से अधिक है" त्रुटि वास्तव में मूल ग्राफिक्स पुस्तकालय (स्की) में है यह एक बालक है क्योंकि समस्या वास्तव में है कि स्किमा बिटमैप डेटा के लिए मूल ढेर में स्मृति से बाहर चला गया है। पृष्ठभूमि के लिए बिटमैपफैक्टरी ओओएम ड्राइविंग मुझे पाएं यह गोल करने के लिए, आपको अपने बिटमैप उपयोग को ध्यान से देखना होगा

  • सुनिश्चित कर लें कि आप बिटमैप को फ़्लोटिंग संदर्भ नहीं छोड़ते हैं
  • रीसायकल / नल ऑन बिटमैप कर रहे हैं क्योंकि वे मुक्त हो जाते हैं (यह मददगार होता है)।

बिटमैप पढ़ने के लिए नमूना का उपयोग करें मेमोरी लीक की वजह से त्रुटि हो सकती है।

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;

Bitmap bitmap=BitmapFactory.decodeFile(path,options);