Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AsyncTask中CookieSyncManager.createInstance中的NullPointerException_Java_Android_Android Asynctask_Nullpointerexception_Android Cookiemanager - Fatal编程技术网

Java AsyncTask中CookieSyncManager.createInstance中的NullPointerException

Java AsyncTask中CookieSyncManager.createInstance中的NullPointerException,java,android,android-asynctask,nullpointerexception,android-cookiemanager,Java,Android,Android Asynctask,Nullpointerexception,Android Cookiemanager,我有一个从AysncTask扩展而来的类。在doInBackground方法中,我想更新cookies,因此我有: CookieSyncManager.createInstance(context); // <<<<<<<<<<<<<<<<<< CookieManager cookieManager = CookieManager.getInstance(); cookieMan

我有一个从AysncTask扩展而来的类。在
doInBackground
方法中,我想更新cookies,因此我有:

CookieSyncManager.createInstance(context);      // <<<<<<<<<<<<<<<<<<
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setCookie(cookie.getDomain(), cookieString); 
CookieSyncManager.getInstance().sync();

这是我的doInBackground方法:

request = new HttpGet(this.url);
request.addHeader("Accept", "application/json");
request.addHeader("Authorization", this.basicAuthentication);
HttpParams httpParams = new BasicHttpParams();
HttpProtocolParams.setVersion(httpParams, HttpVersion.HTTP_1_1);
HttpClient httpclient = null;
httpclient = new DefaultHttpClient(httpParams);

HttpResponse response = httpclient.execute(request);


// The content from the requested URL along with headers, etc.
HttpEntity entity = response.getEntity();
String responseBody = EntityUtils.toString(entity, "UTF-8");

CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setCookie(cookie.getDomain(), cookieString); 
CookieSyncManager.getInstance().sync();

我从未使用过
CookieSyncManager
,但从中可以看出,您不应该在线程中使用它,因为它已经创建了一个线程:

一个单独的线程在两个线程之间保存cookie,由计时器驱动

  • 当应用程序启动时,您应该调用
    createInstance
    ,通常是在
    onCreate()
  • Activity.onResume()中的
    getInstance().startSync()
  • Activity.onPause()中的
    getInstance().stopSync()
你有一个例子吗


希望有帮助。

我在
应用程序的
onCreate()中调用它。
将应用程序作为上下文传递

请添加相关代码和堆栈跟踪。谢谢您的建议。我编辑了我的问题@EmmanuelCookieSyncManager在哪里实例化?似乎空指针就是那个对象。这是我的问题之一。。。我编辑了,请看一下@Algui91我想这就是问题所在,你能发布
CookieSyncManager
的代码吗。我敢打赌它没有实例化。为了消除任何疑问,您可以在行中设置一个断点,看看实际上,
CookieSyncManager
是否为
Null
。不,它不是。但是谢谢你。。。它涉及如何从不同的活动中调用不同的函数。
request = new HttpGet(this.url);
request.addHeader("Accept", "application/json");
request.addHeader("Authorization", this.basicAuthentication);
HttpParams httpParams = new BasicHttpParams();
HttpProtocolParams.setVersion(httpParams, HttpVersion.HTTP_1_1);
HttpClient httpclient = null;
httpclient = new DefaultHttpClient(httpParams);

HttpResponse response = httpclient.execute(request);


// The content from the requested URL along with headers, etc.
HttpEntity entity = response.getEntity();
String responseBody = EntityUtils.toString(entity, "UTF-8");

CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setCookie(cookie.getDomain(), cookieString); 
CookieSyncManager.getInstance().sync();