8

ऐसा लगता है कि मेरे पास मेरी परियोजना के साथ यह अजीब समस्या है।
यह सब ठीक काम कर रहा था, लेकिन चूंकि मैंने एंड्रॉइड 6.0.1 में अपना एस 6 एज अपडेट किया था, इसलिए ऐप के बाद दूसरे लॉन्च के बाद आउटऑफमेमरी त्रुटि के साथ दुर्घटनाग्रस्त प्रतीत होता है।एंड्रॉइड 6.0.1 डिवाइस पर आउटऑफमेमरी त्रुटि

एप्लिकेशन में निर्देशिका में 2000+ छवियां हैं और मैं एक काउंटर बढ़ाने और उन्हें छवि दृश्य पर प्रदर्शित करने के लिए टाइमर का उपयोग कर रहा हूं। जब ऑनफिनिश()/ऑन पॉज़()/ऑनडेस्ट्रॉय() को कॉल किया जाता है, तो मैं टाइमर, काउंटर और इमेज जैसे सभी ऑब्जेक्ट्स को नष्ट/रद्द कर रहा हूं, उन्हें शून्य पर सेट करके देखें।

यह आरंभिक लॉन्च पर महान चलाता है (भले ही मैं एक उत्पन्न APK का उपयोग करके एप्लिकेशन इंस्टॉल) कैसे मैं imageView

int resID = getResources().getIdentifier("animation"+i , "drawable", getPackageName()); 
    Drawable animationFrame = ContextCompat.getDrawable(this, resID); 
    animationView.setImageDrawable(animationFrame); 
    i++; 

सब कुछ करने के लिए छवि मुद्रण/प्राप्त करते समय कर रहा हूँ। लेकिन जब मैं कम से कम अनुप्रयोगों से ऐप को हटा देता हूं, तो एप्लिकेशन 2-3 सेकंड के बाद दुर्घटनाग्रस्त हो जाता है। मैंने आवंटित स्मृति की जांच की है और यह पहले रन पर सामान्य (12 एमबी तक) है जबकि दूसरी आवंटित स्मृति 255 एमबी है।

OnDestroy() विधि यह सभी मेरी चर initialised भी शामिल है। इसके अलावा, नहीं करता है, तो मामले को लेकिन मेरे चर निजी या पहुँच नहीं चर

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    pauseAnimation(); 
    animationView.setImageDrawable(null); 
    animationView = null; 
    justAnimation = null; 
    buttonSign = null; 
    i = 0; 
    media.stop(); 
    media = null; 
    deathRateEU = 0; 
    deathRateUK = 0; 
    labelNumber = null; 
    labelNumberUK = null; 
    buttonSign = null; 
    loadingEU = null; 
    loadingUK = null; 

} 

मीडिया के साथ initialised कर रहे हैं एक MediaPlayer सार्वजनिक रूप initialised है और यह एक ध्वनि जब काउंटर (i) एक बिंदु तक पहुँच जाता है निभाता है

मैंने इसे किसी अन्य डिवाइस पर स्थापित करने का प्रयास किया जो एंड्रॉइड 5.1.3 चलाता है (सुनिश्चित नहीं है लेकिन यह 5.1 है) और यह सब ठीक काम कर रहा है।

क्या आप जानते हैं कि आउटऑफमेमरी मुद्दों के लिए कोई ज्ञात बग है या नहीं, जब एंड्रॉइड 6.0.1 पर एप्लिकेशन कम हो जाता है?

मैं 100% यकीन है कि मैं किसी भी परिवर्तन नहीं किया है इससे पहले कि/मेरे फोन संस्करण से अपडेट के बाद 6.0.1

कृपया मुझे पता है तुम मुझे किसी भी संबंधित लॉग/स्मृति पर नजर रखने के स्क्रीनशॉट पोस्ट करने के लिए आदि चाहते हैं, तो कर रहा हूँ

मेमोरी 1 लॉन्च पर मॉनिटर enter image description here

द्वितीय प्रमोचन

enter image description here

नोट: आवेदन पहले से ही डिवाइस पर स्थापित किया गया है और मैं Android स्टूडियो का उपयोग कर इसे संकलित करने के लिए कोशिश

  1. हैं, तो दुर्घटना होती है
  2. मैं स्थापना रद्द करने के लिए/करने के लिए फिर से संकलन है पहली बार
  3. में काम करने वाले ऐप को प्रबंधित करने के लिए प्रबंधित करें जब मैं जेनरेशन एंड्रॉइड 6.0 डिवाइस पर अपनी प्रोजेक्ट चलाने की कोशिश करता हूं, लेकिन एंड्रॉइड 5 पर नहीं, तो मुझे वही त्रुटि मिलती है।1 जीनमोशन वर्चुअल डिवाइस
+3

कृपया एक [एमसीवी] प्रदान करें। इसमें क्रैश होने वाला कोड और क्रैश का स्टैक ट्रेस शामिल होगा। – CommonsWare

+1

ब्याज से, क्या डस्ट्रॉय को भी बुलाया जाता है? मुझे कुछ छवि और वीडियो से संबंधित क्लीनअप कोड को चालू करना था, और इसे रीज़्यूम में पुनर्स्थापित करना था, क्योंकि ऑनस्ट्रॉय ऐसा करने के लिए एक विश्वसनीय स्थान नहीं था। – Ewald

+0

हां, मैंने यह सुनिश्चित करने के लिए ब्रेकपॉइंट रखा है कि इस विधि को – cmario

उत्तर

0

आप छवियों का प्रबंधन करने के लिए picasso() का उपयोग करने का प्रयास कर सकते हैं .... कम से कम एक त्वरित प्रयोग के रूप में यह देखने के लिए कि यह अलग-अलग व्यवहार करता है या नहीं।

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