本文介绍了NullPointerException异常在CookieSyncManager.createInstance中的AsyncTask的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有从的 AysncTask 的扩展一个类。在 doInBackground 方法,我想更新的饼干,所以我有:

  CookieSyncManager.createInstance(背景); //<<<<<<<<<<<<<<<<<<
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setCookie(cookie.getDomain(),cookieString);
CookieSyncManager.getInstance()同步()。

不过,我得到显示java.lang.NullPointerException 在第一线。

所以,在问题是:


  • 为什么可能会导致这?

  • 请我需要其他活动来创建它,只是把它用在这个活动?怎么样 ?为什么?


备注


  • 我知道我的情况下不为空,我检查了。

  • 我不能上的的AsyncTask 的一个的onCreate 的方法。


下面是在堆栈跟踪

 显示java.lang.NullPointerException
    在android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:101)
    在android.webkit.JniUtil.setContext(JniUtil.java:53)
    在android.webkit.CookieSyncManager.createInstance(CookieSyncManager.java:89)
    在com.t.m.library.Htt prequest.doInBackground(HTT prequest.java:129)
    在com.t.m.library.Htt prequest.doInBackground(HTT prequest.java:1)
    在android.os.AsyncTask $ 2.call(AsyncTask.java:287)
    在java.util.concurrent.FutureTask中$ Sync.innerRun(FutureTask.java:305)
    在java.util.concurrent.FutureTask.run(FutureTask.java:137)
    在android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:230)
    在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:569)
    在java.lang.Thread.run(Thread.java:856)


这是我的 doInBackground 方式:

 要求=新HTTPGET(this.url);
request.addHeader(接受,应用/ JSON);
request.addHeader(授权,this.basicAuthentication);
的HttpParams的HttpParams =新BasicHttpParams();
HttpProtocolParams.setVersion(的HttpParams,HttpVersion.HTTP_1_1);
HttpClient的HttpClient的= NULL;
HttpClient的=新DefaultHttpClient(的HttpParams);HTT presponse响应= httpclient.execute(请求);
//从请求的URL与头部等一起含量
HttpEntity实体= response.getEntity();
串responseBody = EntityUtils.toString(实体,UTF-8);CookieSyncManager.createInstance(上下文);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setCookie(cookie.getDomain(),cookieString);
CookieSyncManager.getInstance()同步()。


解决方案

我从来没有使用 CookieSyncManager ,但是从我可以在的可能是你不应该在一个线程中使用它,因为它已经创建之一:

  • You should call createInstance when the application starts, usually in onCreate()
  • getInstance().startSync() In Activity.onResume()
  • And getInstance().stopSync() in Activity.onPause()

Here you have an example

Hope this help.

这篇关于NullPointerException异常在CookieSyncManager.createInstance中的AsyncTask的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-27 03:09