本文介绍了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 inonCreate()
getInstance().startSync()
InActivity.onResume()
- And
getInstance().stopSync()
inActivity.onPause()
Here you have an example
Hope this help.
这篇关于NullPointerException异常在CookieSyncManager.createInstance中的AsyncTask的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!