पर सीरियलाइजेशन पर अपवाद मेरे ऐप में मैं एक डेटा ऑब्जेक्ट को Activity
से दूसरे में पास करता हूं। कोड काफी सरल है, पहले Activity
पर:सैमसंग गैलेक्सी एस 5
Intent intent = new Intent(getActivity(), BlablaActivity.class);
intent.putExtra(Values.KEY_ITEM, item);
और पर प्राप्त Activity
:
Intent intent = getActivity().getIntent();
item = (Item) intent.getSerializableExtra(Values.KEY_ITEM);
Advertising
वर्ग भी बहुत सरल है:
public class Advertising implements Serializable {
private static final long serialVersionUID = -7292860618498106953L;
private Content content;
private Anchor anchor;
private String target;
private String id;
// ...
}
और Anchor
वर्ग जो इस समस्या का कारण बन रहा है:
की वजह से: क्षेत्र de.mycompany.model.Advertising.anchor
टाइप डे हैpublic class Anchor implements Serializable { private static final long serialVersionUID = 7360857799761417956L; public String value; public String label; // ... }
मैं केवल Samsung Galaxy S5 (एस.एम.- G900F) के लिए निम्न अपवाद प्राप्त .mycompany.model.resultandexpose.Anchor, de.mycompany.model.resultandexpose.Anchor
मिला है और मैं इस का कोई अर्थ, उम्मीद वर्ग वास्तविक वर्ग है नहीं कर सकता। ऐसा लगता है कि यह एक और सैमसंग विशिष्ट समस्या है। किसी ने इसका अनुभव किया और एक फिक्स जानता है या यह पता है कि इसका क्या कारण है?
संपादित करें:
हाँ, मैं ProGuard का उपयोग करके कर रहा हूँ। प्रोगार्ड फ़ाइल इस तरह दिखती है:
-keepattributes ** - रखरखाव वर्ग! Android.support.v7.internal.view.menu। , {*;} -dontpreverify -dontoptimize -dontshrink -dontwarn **
दूसरी पंक्ति एक known bug on Samsung devices के लिए एक समाधान नहीं है और android.support.v7.internal.view.menu.*
पैकेज में उन लोगों के अलावा किसी भी कक्षाएं नहीं छूना चाहिए ।
एंकर वर्ग का धारावाहिक संस्करण संस्करण मेरी सभी कक्षाओं में अद्वितीय है।
Parcelable
पर स्विच करने से पूरे प्रोजेक्ट का भारी ओवरहाल होगा।Serializable
के रूप में ऑब्जेक्ट पास करना सभी उपकरणों पर काम करना चाहिए।Anchor
कक्षा इस बग का केवल एक उदाहरण है जो कई अन्य वर्गों पर होता है जो मूल रूप से समान या बहुत समान दिखते हैं। तो यह नहीं है एक वर्ग लेकिन एक और सामान्य समस्या प्रतीत होती है।
'Content' क्या है? क्या यह 'Serializable' है? बीटीडब्ल्यू अगर आप फ़ाइल पर ऑब्जेक्ट नहीं लिख रहे हैं, तो 'पार्सेलबल' पर स्विच करें। – Blackbelt
@ ब्लैकबल्ट सामग्री एंकर के लिए बहुत अधिक अनुरूप है और हां, यह Serializable लागू करता है। – FWeigl
क्या 'serialVersionUID' 'एंकर' के लिए अद्वितीय है? क्या यह हो सकता है कि 'Content' एक ही 'serialVersionUID' का उपयोग करता है? –