2015-11-03 9 views
9

का कारण बनता है मैं एडव्यू और लीक कैनरी का उपयोग कर रहा हूं। फ्रैगमेंट जो ऑनडिस्ट में adView call adView.destroy() को होस्ट करता है, लेकिन लीक कैनरी दिखाता है कि इस खंड को होस्ट करने वाली गतिविधि com.google.android.gms.common.api.a.a.a.i.i द्वारा लीक की गई है। हीप डंप यह भी दिखाता है कि स्मृति रिसाव है। जब मैं AdView.loadAd() को हटाता हूं और खंड को विज्ञापन लोड नहीं करता - वहां कोई रिसाव नहीं होती है। कोई विचार या सुझाव? धन्यवाद।एडव्यू मेमोरी लीक

  • onDestroyView()
  • में अपने तर्क ले जाने के पहले अपने कंटेनर से अपने adView निकालें और फिर फोन को नष्ट(), यानी

    ViewParent parent = adView.getParent(); 
    if (parent != null && parent instanceof ViewGroup) { 
        ((ViewGroup) parent).removeView(adView); 
    } 
    
    adView.destroy(); 
    adView = null; 
    

उत्तर

1

आप निम्नलिखित की कोशिश कर सकते हैं वही समस्या, AdView में संदर्भ पर एक आंतरिक चर (मजबूत संदर्भ) होल्डिंग है, जो मेरी सक्रियता है वाई, गतिविधि उदाहरण की रिसाव का कारण बनता है।

मेरे निर्भरता com.google.android.gms:play-services-ads:8.3.0

एक वैकल्पिक हल जब adview उदाहरण बनाकर आवेदन संदर्भ आपूर्ति करने के लिए है।

AdView adview = new AdView(getApplicationContext()); 
+1

दुर्भाग्यवश अभी भी एक स्मृति रिसाव है। ऐसा लगता है कि adView गतिविधि पर संदर्भ रखता है। –

+0

मुझे कभी भी विज्ञापन दृश्य के साथ कोई मेमोरी लीक नहीं मिली है और हम पूरे डीएफपी का उपयोग कर रहे हैं। क्या आप सुनिश्चित कर सकते हैं कि आप नवीनतम Play सेवाओं का उपयोग कर रहे हैं। मैं सकारात्मक हूं यह कुछ और है लेकिन कुछ स्रोत कोड देखे बिना नहीं कह सकता है। –

+0

क्या आपने लीक कैनरी या हेप डंप द्वारा ऐप्स का परीक्षण किया था? मैं नवीनतम 8.1.0 प्ले सेवाओं का उपयोग कर रहा हूं –

6

:

+0

लेकिन अगर हम एक्सएमएल में एडव्यू का उपयोग कर रहे हैं तो यह नहीं किया जा सकता है। मैंने एडव्यू ऑन डेस्ट्रॉय को नष्ट करने की कोशिश की लेकिन मदद नहीं की। –

+0

@Funkyidol या लेआउट inflater शायद गतिविधि को एडव्यू के संदर्भ के रूप में आपूर्ति कर रहा है लेआउट xml। प्रोग्रामगेटिक रूप से देखने के लिए एक दृश्य जोड़ना उस भयानक नहीं है। – dvd

+0

यह एकमात्र चीज है जो इसे मेरे लिए तय करती है। शर्म की बात है कि मैं इसे अब XML लेआउट में नहीं जोड़ सकता ... – eliasbagley

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