2011-10-24 17 views
8

हाय मैं यातायात संकेतों के बारे में एक ऐप बना रहा हूं। यातायात संकेत .png प्रारूप में हैं। उनमें से कुछ मैं क्षैतिज स्क्रॉलव्यू में दिखा रहा हूँ। लेकिन जब गतिविधियों को खोलने का प्रयास करते हैं, तो मुझे एंड्रॉइड मार्केट त्रुटि रिपोर्ट से यह त्रुटि मिलती है। यहां मेरी त्रुटि रिपोर्ट है:java.lang.OutOfMemoryError BitmapFactory.nativeDecodeAsset()

<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> 

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

+0

क्या आप हमें varningsmarken.java और लेआउट xml फ़ाइल के लिए कोड दिखा सकते हैं। जाहिर है आपके पास एक टाइपराय भी है। इमेजव्यू में लोड होने वाली छवि का आकार भी क्या है? – JPM

+0

धन्यवाद बहुत दोस्त मैंने इसे तय किया! –

+2

फ़िक्स को पोस्ट करें ताकि अन्य लोग आपसे सीख सकें, यही वह साइट है ... प्लस मैं भी curioud हूँ। – JPM

उत्तर

3

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

  • सुनिश्चित करें कि आप बिटमैप संदर्भ चल
  • बिटमैप्स onn एक पुनरावृत्ति/बातिल कर मत छोड़ो के रूप में वे मुक्त हो जाते हैं बनाने (यह प्रतीत होता है अपने बिटमैप उपयोग को ध्यान से देखने के लिए होगा मदद)।
2

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

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

Bitmap bitmap=BitmapFactory.decodeFile(path,options); 
संबंधित मुद्दे