【问题标题】:Cookie manager causing fatal signal 11Cookie 管理器导致致命信号 11
【发布时间】:2013-11-26 18:06:32
【问题描述】:

当我尝试在 cookiemanager 上设置 cookie 时,我的应用程序会静默崩溃(没有强制关闭弹出窗口)。

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)

这是生成的墓碑日志:http://textuploader.com/?p=6&id=gPpJ

它在 CookieManager setCookie() 行上失败(即我在该行之前和之后记录一条消息,它会打印之前的消息,而不是之后的消息)

有人遇到过这个问题吗?

【问题讨论】:

    标签: java android cookiemanager


    【解决方案1】:

    在调用 CookieManager 之前添加CookieSyncManager.createInstance(context);

    【讨论】:

    【解决方案2】:

    尝试在 onCreate() 方法中创建 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();
    }
    

    【讨论】:

      【解决方案3】:

      如果您完全确定此崩溃是由上述代码触发的,则表示存在固件错误。 Android SDK 应用程序不可能触发 SIGSEGV。

      如果这发生在 Nexus 设备、模拟器或多台设备上,则可能是 Android 错误。在http://b.android.com 上提交问题(如果似乎还没有问题),指出这个问题并可能附上该墓碑日志。

      如果这仅发生在某些特定设置(例如,一个设备,一个 ROM 模块)而不是其他设置中,则可能是该环境特有的,在这种情况下,您应该尝试从设备或 ROM 模块制造商处获得帮助.

      除此之外,请确保 cookie.getDomain() 返回一个有效值,因为这似乎是最有可能的罪魁祸首。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-16
        • 2014-09-13
        • 2016-06-22
        • 2012-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-27
        相关资源
        最近更新 更多