यहाँ सेटअप है:एंड्रॉइड: अपवाद का कारण अपवाद का कारण बनता है। वस्तुओं का निरीक्षण कैसे करें?
- मैं मदों की एक सूची (सर्वर से अद्यतन, एक सादे जावा वर्ग द्वारा प्रतिनिधित्व) के साथ एक गतिविधि है। आइटम को कस्टम बेस एडाप्टर और प्रत्येक पंक्ति के लिए कस्टम व्यू के माध्यम से प्रस्तुत किया जाता है।
- आइटम पार्ससेलबल को लागू करते हैं, ताकि जब स्क्रीन घुमाया जाए, तो आइटम को बंडल में एक पार्ससेलएबलरेस्टिस्ट के रूप में सहेजा जाता है, फिर सर्वर पर वापस जाने के बिना बहाल किया जाता है।
अभी तक, यह एक काफी सरल सेटअप है, हालांकि मैं इन वस्तुओं में से किसी एक को दूसरी गतिविधि में पास करना चाहता हूं। बंडल में "पबएक्स्ट्रा (स्ट्रिंग, पार्ससेलबल)" विधि है, जिसे मैं ऑब्जेक्ट को वहां रखने के लिए उपयोग करना चाहता था, फिर इरादे से गुजरता हूं। जब मैंने ऐसा किया, तो डिवाइस को OutOfMemoryException के कारण एक बल बंद करना शुरू हो गया। ऐसा लगता है कि ऑब्जेक्ट को अचूक करने की कोशिश करते समय, यह ~ 30 एमबी (!)
ऐसा लगता है कि ऑब्जेक्ट किसी अन्य चीज़ के संदर्भ में होना चाहिए, क्योंकि ऑब्जेक्ट में केवल कुछ int/float/String फ़ील्ड और संबंधित विधियां हैं । मैं कोड या डीबग इंस्पेक्टर को देखकर इसे ट्रैक करने में सक्षम नहीं हूं और मुझे नहीं पता कि हीप दर्शक का प्रभावी ढंग से उपयोग कैसे करें।
कोई सुझाव?
यहाँ स्टैकट्रेस
/dalvikvm-heap(5876): Out of memory on a 29098436-byte allocation.
I/dalvikvm(5876): "main" prio=5 tid=1 RUNNABLE
I/dalvikvm(5876): | group="main" sCount=0 dsCount=0 s=N obj=0x4001d8d0 self=0xccc8
I/dalvikvm(5876): | sysTid=5876 nice=0 sched=0/0 cgrp=default handle=-1345017816
I/dalvikvm(5876): | schedstat=(1107116708 1124999998 2626)
I/dalvikvm(5876): at java.util.ArrayList.<init>(ArrayList.java:~84)
I/dalvikvm(5876): at android.os.Parcel.readArrayList(Parcel.java:1460)
I/dalvikvm(5876): at android.os.Parcel.readValue(Parcel.java:1792)
I/dalvikvm(5876): at android.os.Parcel.readMapInternal(Parcel.java:2007)
I/dalvikvm(5876): at android.os.Bundle.unparcel(Bundle.java:208)
I/dalvikvm(5876): at android.os.Bundle.containsKey(Bundle.java:249)
I/dalvikvm(5876): at <mypackage>.BaseDetailsActivity.isInModifyState(BaseDetailsActivity.java:184)
I/dalvikvm(5876): at <mypackage>.DetailsActivity.onCreate(DetailsActivity.java:230)
I/dalvikvm(5876): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
I/dalvikvm(5876): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
I/dalvikvm(5876): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
I/dalvikvm(5876): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
I/dalvikvm(5876): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
I/dalvikvm(5876): at android.os.Handler.dispatchMessage(Handler.java:99)
I/dalvikvm(5876): at android.os.Looper.loop(Looper.java:123)
I/dalvikvm(5876): at android.app.ActivityThread.main(ActivityThread.java:4627)
I/dalvikvm(5876): at java.lang.reflect.Method.invokeNative(Native Method)
I/dalvikvm(5876): at java.lang.reflect.Method.invoke(Method.java:521)
I/dalvikvm(5876): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
I/dalvikvm(5876): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
I/dalvikvm(5876): at dalvik.system.NativeStart.main(Native Method)
में एरेलिस्टिस्ट को कम करने में मेरी सहायता की, मुझे भी यही समस्या थी। मैंने जो किया वह रिवर्स ऑर्डर (स्टैक) में मूल्यों को पढ़ने की कोशिश कर रहा था। लेकिन वास्तव में आपको उन्हें उसी क्रम में पढ़ने की आवश्यकता है जिसे आप उन्हें डालते हैं। –
मुझे लगता है कि यह एक बाइनरी फ़ाइल की तरह काम करता है, इसलिए यह बहुत अधिक फीफो –
ग्रेट है..मुझे लगाया..धन्यवाद! –