2013-04-19 9 views
10

मेरा ऐप चुपचाप दुर्घटनाग्रस्त हो जाता है (कोई बल बंद पॉपअप नहीं) जब मैं cookiemanager पर कुकी सेट करने का प्रयास करता हूं। http://textuploader.com/?p=6&id=gPpJकुकी प्रबंधक घातक सिग्नल 11

यह (सही CookieManager setcookie() लाइन पर विफल रहता है यानी कि मैंने पहले संदेश लॉग इन करें:

mHttpClient.getParams().setBooleanParameter(ClientPNames.HANDLE_REDIRECTS, false); 
HttpGet http_get = new HttpGet(url); 
HttpResponse response = mHttpClient.execute(http_get); 

for(Cookie cookie : mHttpClient.getCookieStore().getCookies()) { 

    Log.d(AppPreferences.TESTTAG,"cookie = " + cookie.getName()); 
    if(cookie.getName().equals("SACSID") || cookie.getName().equals("ACSID")) 
    { 
     response.getEntity().consumeContent(); 
     String cookieString = cookie.getName() + "=" + cookie.getValue() + "; domain=" + cookie.getDomain(); 
     CookieManager.getInstance().setCookie(cookie.getDomain(), cookieString); //**crashes here** 
     return true; 
    }     
} 

यहाँ सब मैं logcat

04-19 22:51:35.277: W/dalvikvm(16704): Invalid indirect reference 0x414bb040 in decodeIndirectRef 
04-19 22:51:35.277: E/dalvikvm(16704): VM aborting 
04-19 22:51:35.281: A/libc(16704): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1), thread 16754 (AsyncTask #1) 

यहाँ से हो रही है समाधि का पत्थर लॉग उत्पन्न है और उस पंक्ति के बाद यह पहले संदेश को प्रिंट करता है लेकिन बाद में नहीं)

कोई भी इस समस्या में भाग लेता है?

उत्तर

25

कुकी मैनेजर को कॉल करने से पहले CookieSyncManager.createInstance(context); जोड़ें।

+1

यह मेरे लिए काम करता है। –

+0

इसके बिना मेरा ऐप जेलीबीन पर दुर्घटनाग्रस्त हो रहा था – Fouad

0

यदि आप पूरी तरह से निश्चित हैं कि यह क्रैश आपके ऊपर दिए गए कोड द्वारा ट्रिगर किया गया है, तो यह फ़र्मवेयर बग का प्रतिनिधित्व करता है। एक एंड्रॉइड एसडीके ऐप एक SIGSEGV ट्रिगर करने में सक्षम होना चाहिए कोई रास्ता नहीं है।

यदि यह नेक्सस डिवाइस पर, एमुलेटर पर या एकाधिक उपकरणों पर होता है, तो यह शायद एक एंड्रॉइड बग है। http://b.android.com पर कोई समस्या दर्ज करें (यदि पहले से कोई प्रतीत नहीं होता है), इस समस्या को इंगित करते हुए और शायद उस टॉम्बस्टोन लॉग को जोड़ना।

यदि यह केवल कुछ विशिष्ट सेटिंग (उदाहरण के लिए, एक डिवाइस, एक रॉम मोड) में होता है और अन्य नहीं, तो शायद यह उस माहौल के लिए कुछ असाधारण है, इस मामले में आपको डिवाइस या रॉम मोड से सहायता प्राप्त करने का प्रयास करना चाहिए निर्माता।

इसके अलावा, सुनिश्चित करें कि cookie.getDomain() एक वैध मूल्य लौटा रहा है, जैसा कि कफ से बाहर है, जो सबसे अधिक संभावित अपराधी की तरह लगता है।

1

ऑनक्रेट() विधि में WebView बनाने और इसे नष्ट करने का प्रयास करें। WebView ContentManager और WebKit के बीच कुछ "पुल" बनाएं। इस तरह की कुछ चीज:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_layout); 
    WebView web = new WebView(this); 
    web.destroy(); 
} 
संबंधित मुद्दे

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