मेरे पास एक सर्वर/क्लाइंट ऐप है जहां मैं सर्वर से डेटा को हेसियन/हेसड्रॉइड के माध्यम से पुनर्प्राप्त करता हूं। डेटा हैशमैप्स के साथ बहुत जटिल है जिसमें अन्य हैशमैप्स और बाइट एरे में संग्रहीत छवियां हैं। मैं डेटा को पूरी तरह प्रदर्शित कर सकता हूं।हैश मैप डी-सीरियलाइजेशन
हमेशा सर्वर से पूछताछ करने के लिए, मैं एक डेटा संरचना को कैश के रूप में उपयोग कर रहा हूं। ऐप बंद करते समय ऑब्जेक्टऑटपुटस्ट्रीम का उपयोग करके मैं यह डेटा ऑब्जेक्ट एसडी कार्ड में सहेजता हूं। जब मैं इसे पुनरारंभ करता हूं, तो मैंने इसे ऑब्जेक्ट इनपुटपुट के साथ स्मृति में वापस पढ़ा।
मुझे एसडी कार्ड से डेटा पढ़ने के बाद ही ऐप के साथ समस्याएं आ रही हैं। ढेर ~ 17 एमबी ऐप्लिकेशन क्रैश पर बढ़ता है जब
INFO/dalvikvm-heap(4150): Grow heap (frag case) to 10.775MB for 281173-byte allocation
:
DEBUG/dalvikvm(4150): GetFieldID: unable to find field Ljava/util/HashMap;.loadFactor:F
और इस में अन्य संदेशों के बीच: LogCat मेरा पीछा निर्गम (100 बार) देता है।
मैंने हैश मैप सीरियलाइजेशन के बारे में कई धागे पढ़े हैं और आर्किटेक्चर के बीच क्रमबद्ध होने पर एक बग प्रतीत होता है, लेकिन मेरे लिए हैसियन के माध्यम से डेटा ट्रांसफर पूरी तरह से काम करता है और डिस्क से हैश मैप्स पढ़ने पर केवल वर्णित समस्याएं हैं I
कोई भी विचार?
कृपया आप जिस कोड को लोड करते हैं और डेटा को डी-सीरियलाइज करते हैं, उसे पोस्ट कर सकते हैं? –
कृपया लॉग बिल्ली का पूरा डंप और श्री अर्ल द्वारा उल्लिखित स्रोत कोड जोड़ें। आपने जो कहा है उससे यह स्मृति समस्या से बाहर की तरह गंध करता है (शायद यह http://code.google.com/p/android/issues/detail?id=14869) की मदद करेगा। –