6

ये क्रैश मेरी मुख्य गतिविधि में बैक करते समय अंतःक्रियात्मक रूप से होते हैं, जिसमें दो टुकड़े होते हैं (एक Google मानचित्र समर्थन खंड होता है) । अगर यह हमारी क्रैश-ट्रैकिंग सिस्टम के लिए नहीं था, तो मुझे नहीं पता था कि उपयोगकर्ता इसका अनुभव कर रहे थे, क्योंकि यह मेरे किसी भी भौतिक या नकली उपकरणों पर पुन: उत्पन्न नहीं होता है।java.lang.OutOfMemoryError: android.support.v4.app.BackStackState [] लंबाई 12795448 9 8 ओवरफ्लो

java.lang.OutOfMemoryError: android.support.v4.app.BackStackState[] of length 1279544898 would overflow 

या

java.lang.OutOfMemoryError: Failed to allocate a 5118179604 byte allocation with 16777216 free bytes and 472MB until OOM near/at g.newArray:174 

: यह 15 की मेरी मिनट और 22

दुर्घटना प्रणाली में की मेरी लक्ष्य के बीच विभिन्न एपीआई तक फैला, दुर्घटना में दो रूपों में से एक में हो रहा है

mMapView.onCreate(savedInstanceState); 

मेरा पहला टी: क्रैश होने मेरी नक्शा युक्त टुकड़ा की onViewCreated विधि में होता है सोचा स्मृति स्मृति रिसाव है, लेकिन ... ऐसा लगता है कि बैकस्टैक बनाते समय यह लूपिंग है - जैसे कि बैकस्टैक की अनुक्रमणिका लंबे समय से बहती है। लीक कैनरी को कोई मेमोरी लीक नहीं मिला (हमारे मुख्य अनुप्रयोग को छोड़कर, जो मुझे पता है संदर्भ के लिए एक स्थिर संदर्भ बनाए रखता है)। और अगर यह एक सामान्य स्मृति रिसाव था, तो यह अजीब लगता है कि यह दुर्घटना हमेशा एक ही रेखा पर होती है और कहीं और नहीं। इस ऐप के अन्य मेमोरी-गहन क्षेत्र हैं (जो उद्यम है, इसलिए मैं बहुत अधिक खुलासा नहीं कर सकता), लेकिन उन अन्य गतिविधियों में से कोई भी ओओएम त्रुटियों को फेंक दिया नहीं है।

मुझे यह भी ध्यान रखना चाहिए कि यह एक परिपक्व ऐप है, जिसमें कई उपयोगकर्ता और रिलीज़ हैं। ओओएम मुद्दा केवल हमारी वर्तमान रिलीज के बीटा में होता है (फिर से, पूरी तरह से हमारे क्रैश-ट्रैकिंग सिस्टम के रिकॉर्ड पर आधारित है, क्योंकि हम कहीं भी repro नहीं कर सकते हैं)। मैंने अपने उत्पादन रिलीज और हमारे बीटा के बीच पूरी तरह से कोड तुलना की है, और अधिकांश परिवर्तन अपेक्षाकृत मानक/तुच्छ हैं। (मैं नया बिटमैप या कुछ भी जोड़ने शुरू नहीं किया है।)

चश्मा:

  • Play सेवाएं 8.4.0
  • Gradle 2.1
  • लक्ष्य एपीआई 22
  • मिन एपीआई 15
  • ProGuard सक्षम

कोई और इसे देख रहा है? मैं देख सकता हूँ दुर्घटना हो रहा है, लेकिन यह नीचे ट्रैक करने के लिए जब मैं इसे पुन: पेश नहीं कर सकते हैं बहुत मुश्किल है ...

+0

पूर्ण कोड जोड़ें – Zoe

+0

यह एंटरप्राइज़ कोड है, इसलिए मैं नहीं कर सकता। मैंने पॉलिसी का उल्लंघन किये बिना सभी प्रासंगिक सामग्री जोड़ने की कोशिश की। –

+0

तो आपको इसके बारे में प्रश्न नहीं पूछना चाहिए – Zoe

उत्तर

1

मेरे अपने प्रश्न का उत्तर देना ...

मैं सक्षम डॉन द्वारा त्रुटि repro करने में सक्षम था डेवलपर विकल्पों में गतिविधियां न रखें।

परीक्षण के तीन दिनों के बाद, मुझे अंततः पता चला कि हमारा निर्माण सर्वर समर्थन के बजाय समर्थन 24 को संकलित कर रहा था 22 मैंने ग्रैडल में निर्दिष्ट किया है। जाहिर है समर्थन 24 और एंड्रॉइड मानचित्रों के बीच कुछ असंगतता है। बदलते द्वारा:

compile 'com.android.support:support-v4:22.2.0' 

compile('com.android.support:support-v4:22.2.0') { 
    force = true 
} 

इस प्रकार Gradle लिए मजबूर करने के लिए लेने के लिए बाद में 24 इसे करने के लिए उपलब्ध के बजाय 22, पाशन backstack चला गया। अब मैं अपने बीटा उपयोगकर्ताओं के साथ ओओएम नहीं देख रहा हूं।

मुझे लगता है कि एपीआई के अनुमति मॉडल परिवर्तन के साथ इसका कुछ संबंध है, लेकिन कौन जानता है।

वैसे भी ... उम्मीद है कि यह किसी की मदद करता है।

+0

Google play सेवाएं मानचित्र का संस्करण क्या है? –

+0

हम 8.4 का उपयोग कर रहे थे, हालांकि 9.2 अब उपलब्ध है। [रिलीज नोट्स] देखें (https://developers.google.com/android/guides/releases)। –

+0

हमारे पास Google play Services मैप्स 9.0.2 और समर्थन संस्करण 24 पर यह क्रैश है, इसलिए मैं यह देखने के लिए उत्सुक था कि यह एक समान मामला –

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