Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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 doInBackground在internet连接失败时返回nullpointerexception_Java_Android_Android Intent_Android Asynctask - Fatal编程技术网

Java AsyncTask doInBackground在internet连接失败时返回nullpointerexception

Java AsyncTask doInBackground在internet连接失败时返回nullpointerexception,java,android,android-intent,android-asynctask,Java,Android,Android Intent,Android Asynctask,在DomenK进行连接检查后,我发现了下一个错误,我的try-catch块如下所示: try { if (isNetworkAvailable(getApplicationContext())) updateJSONdata(); } catch (Exception ex) { Toast.makeTex

在DomenK进行连接检查后,我发现了下一个错误,我的try-catch块如下所示:

try
            {
               if (isNetworkAvailable(getApplicationContext()))
                  updateJSONdata();
            }
            catch (Exception ex)
            {
               Toast.makeText(getApplicationContext(), "shit happens", Toast.LENGTH_SHORT).show();
               finish();
            }

01-06 19:24:41.221: E/AndroidRuntime(2174): FATAL EXCEPTION: main
01-06 19:24:41.221: E/AndroidRuntime(2174): java.lang.NullPointerException
01-06 19:24:41.221: E/AndroidRuntime(2174):     at com.flex.sklepik.ReadComments.updateList(ReadComments.java:253)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at com.flex.sklepik.ReadComments$LoadComments.onPostExecute(ReadComments.java:317)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at com.flex.sklepik.ReadComments$LoadComments.onPostExecute(ReadComments.java:1)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at android.os.AsyncTask.finish(AsyncTask.java:417)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at android.os.AsyncTask.access$300(AsyncTask.java:127)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at android.os.Looper.loop(Looper.java:130)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at android.app.ActivityThread.main(ActivityThread.java:3701)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at java.lang.reflect.Method.invokeNative(Native Method)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at java.lang.reflect.Method.invoke(Method.java:507)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
01-06 19:24:41.221: E/AndroidRuntime(2174):     at dalvik.system.NativeStart.main(Native Method)
我的应用程序运行得很好,但当互联网连接中断,而异步运行时,我的应用程序就会死掉。下面是我的logcat和异步代码块。也许有人可以帮助我如何制作try-catch block或一些可以检测到internet连接问题的东西,取消下一个作业,自动返回到第一个活动,并通过internet连接问题来吐司简单信息

异步任务

public class LoadComments extends AsyncTask<Void, Void, Boolean> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(ReadComments.this);
            pDialog.setMessage("ŁADUJĘ LISTĘ SKLEPÓW");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
            wczytajMape();
            idzDoPolozenia(52.249665, 21.012511, 10);
        }

        @Override
        protected Boolean doInBackground(Void... arg0) {
            // we will develop this method in version 2

                updateJSONdata();


            return null;

        }

        @Override
        protected void onPostExecute(Boolean result) {
            super.onPostExecute(result);
            pDialog.dismiss();
            // we will develop this method in version 2
            updateList();
            ustawMape();
            mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        }

    }
公共类LoadComments扩展异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=newprogressdialog(ReadComments.this);
pDialog.setMessage(“ADUJĘLISTĘSKLEPÓW”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(真);
pDialog.show();
wczytajMape();
idzDoPolozenia(52.249665,21.012511,10);
}
@凌驾
受保护的布尔doInBackground(无效…arg0){
//我们将在版本2中开发此方法
updateJSONdata();
返回null;
}
@凌驾
受保护的void onPostExecute(布尔结果){
super.onPostExecute(结果);
pDialog.disclose();
//我们将在版本2中开发此方法
updateList();
ustawmap();
mMap.setMapType(GoogleMap.MAP\u TYPE\u NORMAL);
}
}
堆栈跟踪:

01-06 18:52:14.583: E/AndroidRuntime(32139): FATAL EXCEPTION: AsyncTask #1
01-06 18:52:14.583: E/AndroidRuntime(32139): java.lang.RuntimeException: An error occured while executing doInBackground()
01-06 18:52:14.583: E/AndroidRuntime(32139):    at android.os.AsyncTask$3.done(AsyncTask.java:200)
01-06 18:52:14.583: E/AndroidRuntime(32139):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
01-06 18:52:14.583: E/AndroidRuntime(32139):    at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
01-06 18:52:14.583: E/AndroidRuntime(32139):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
01-06 18:52:14.583: E/AndroidRuntime(32139):    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
01-06 18:52:14.583: E/AndroidRuntime(32139):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
01-06 18:52:14.583: E/AndroidRuntime(32139):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
01-06 18:52:14.583: E/AndroidRuntime(32139):    at java.lang.Thread.run(Thread.java:1019)
01-06 18:52:14.583: E/AndroidRuntime(32139): Caused by: java.lang.NullPointerException
01-06 18:52:14.583: E/AndroidRuntime(32139):    at com.flex.sklepik.ReadComments.updateJSONdata(ReadComments.java:195)
01-06 18:52:14.583: E/AndroidRuntime(32139):    at com.flex.sklepik.ReadComments$LoadComments.doInBackground(ReadComments.java:294)
01-06 18:52:14.583: E/AndroidRuntime(32139):    at com.flex.sklepik.ReadComments$LoadComments.doInBackground(ReadComments.java:1)
01-06 18:52:14.583: E/AndroidRuntime(32139):    at android.os.AsyncTask$2.call(AsyncTask.java:185)
01-06 18:52:14.583: E/AndroidRuntime(32139):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
01-06 18:52:14.583: E/AndroidRuntime(32139):    ... 4 more
01-06 18:52:14.793: W/ResourceType(32139): getEntry failing because entryIndex 13 is beyond type entryCount 2
01-06 18:52:14.793: W/ResourceType(32139): Failure getting entry for 0x7f0b000d (t=10 e=13) in package 0 (error -2147483647)
01-06 18:52:14.793: E/GooglePlayServicesUtil(32139): The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
01-06 18:52:14.813: W/ResourceType(32139): getEntry failing because entryIndex 13 is beyond type entryCount 2
01-06 18:52:14.823: W/ResourceType(32139): Failure getting entry for 0x7f0b000d (t=10 e=13) in package 0 (error -2147483647)
01-06 18:52:14.823: E/GooglePlayServicesUtil(32139): The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
01-06 18:52:15.173: W/Ads(32139): There was a problem getting an ad response. ErrorCode: 2
01-06 18:52:15.193: E/WindowManager(32139): Activity com.flex.sklepik.ReadComments has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@2afc3688 that was originally added here
01-06 18:52:15.193: E/WindowManager(32139): android.view.WindowLeaked: Activity com.flex.sklepik.ReadComments has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@2afc3688 that was originally added here
01-06 18:52:15.193: E/WindowManager(32139):     at android.view.ViewRoot.<init>(ViewRoot.java:267)
01-06 18:52:15.193: E/WindowManager(32139):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
01-06 18:52:15.193: E/WindowManager(32139):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
01-06 18:52:15.193: E/WindowManager(32139):     at android.view.Window$LocalWindowManager.addView(Window.java:424)
01-06 18:52:15.193: E/WindowManager(32139):     at android.app.Dialog.show(Dialog.java:241)
01-06 18:52:15.193: E/WindowManager(32139):     at com.flex.sklepik.ReadComments$LoadComments.onPreExecute(ReadComments.java:285)
01-06 18:52:15.193: E/WindowManager(32139):     at android.os.AsyncTask.execute(AsyncTask.java:391)
01-06 18:52:15.193: E/WindowManager(32139):     at com.flex.sklepik.ReadComments.onResume(ReadComments.java:147)
01-06 18:52:15.193: E/WindowManager(32139):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
01-06 18:52:15.193: E/WindowManager(32139):     at android.app.Activity.performResume(Activity.java:3832)
01-06 18:52:15.193: E/WindowManager(32139):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2131)
01-06 18:52:15.193: E/WindowManager(32139):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2156)
01-06 18:52:15.193: E/WindowManager(32139):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1680)
01-06 18:52:15.193: E/WindowManager(32139):     at android.app.ActivityThread.access$1500(ActivityThread.java:121)
01-06 18:52:15.193: E/WindowManager(32139):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
01-06 18:52:15.193: E/WindowManager(32139):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-06 18:52:15.193: E/WindowManager(32139):     at android.os.Looper.loop(Looper.java:130)
01-06 18:52:15.193: E/WindowManager(32139):     at android.app.ActivityThread.main(ActivityThread.java:3701)
01-06 18:52:15.193: E/WindowManager(32139):     at java.lang.reflect.Method.invokeNative(Native Method)
01-06 18:52:15.193: E/WindowManager(32139):     at java.lang.reflect.Method.invoke(Method.java:507)
01-06 18:52:15.193: E/WindowManager(32139):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
01-06 18:52:15.193: E/WindowManager(32139):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
01-06 18:52:15.193: E/WindowManager(32139):     at dalvik.system.NativeStart.main(Native Method)
01-06 18:52:14.583:E/AndroidRuntime(32139):致命异常:异步任务#1
01-06 18:52:14.583:E/AndroidRuntime(32139):java.lang.RuntimeException:执行doInBackground()时出错
01-06 18:52:14.583:E/AndroidRuntime(32139):在android.os.AsyncTask$3.done(AsyncTask.java:200)
01-06 18:52:14.583:E/AndroidRuntime(32139):位于java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
01-06 18:52:14.583:E/AndroidRuntime(32139):在java.util.concurrent.FutureTask.setException(FutureTask.java:125)
01-06 18:52:14.583:E/AndroidRuntime(32139):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
01-06 18:52:14.583:E/AndroidRuntime(32139):在java.util.concurrent.FutureTask.run(FutureTask.java:138)
01-06 18:52:14.583:E/AndroidRuntime(32139):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
01-06 18:52:14.583:E/AndroidRuntime(32139):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
01-06 18:52:14.583:E/AndroidRuntime(32139):在java.lang.Thread.run(Thread.java:1019)处
01-06 18:52:14.583:E/AndroidRuntime(32139):由以下原因引起:java.lang.NullPointerException
01-06 18:52:14.583:E/AndroidRuntime(32139):位于com.flex.sklepik.ReadComments.updateJSONdata(ReadComments.java:195)
01-06 18:52:14.583:E/AndroidRuntime(32139):在com.flex.sklepik.ReadComments$LoadComments.doInBackground(ReadComments.java:294)
01-06 18:52:14.583:E/AndroidRuntime(32139):位于com.flex.sklepik.ReadComments$LoadComments.doInBackground(ReadComments.java:1)
01-06 18:52:14.583:E/AndroidRuntime(32139):在android.os.AsyncTask$2.call(AsyncTask.java:185)
01-06 18:52:14.583:E/AndroidRuntime(32139):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
01-06 18:52:14.583:E/AndroidRuntime(32139):。。。4更多
01-06 18:52:14.793:W/ResourceType(32139):getEntry失败,因为entryIndex 13超出类型entryCount 2
01-06 18:52:14.793:W/ResourceType(32139):获取包0中0x7f0b000d(t=10 e=13)的条目失败(错误-2147483647)
01-06 18:52:14.793:E/GooglePlayServicesUtil(32139):未找到Google Play服务资源。检查您的项目配置以确保包含资源。
01-06 18:52:14.813:W/ResourceType(32139):getEntry失败,因为entryIndex 13超出类型entryCount 2
01-06 18:52:14.823:W/ResourceType(32139):获取包0中0x7f0b000d(t=10 e=13)的条目失败(错误-2147483647)
01-06 18:52:14.823:E/GooglePlayServicesUtil(32139):未找到Google Play服务资源。检查您的项目配置以确保包含资源。
01-06 18:52:15.173:W/Ads(32139):获取广告回复时出现问题。错误代码:2
01-06 18:52:15.193:E/WindowManager(32139):Activity com.flex.sklepik.ReadComments已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@2afc3688原来是加在这里的
01-06 18:52:15.193:E/WindowManager(32139):android.view.WindowLeaked:Activity com.flex.sklepik.ReadComments已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@2afc3688原来是加在这里的
01-06 18:52:15.193:E/WindowManager(32139):在android.view.ViewRoot.(ViewRoot.java:267)
01-06 18:52:15.193:E/WindowManager(32139):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
01-06 18:52:15.193:E/WindowManager(32139):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
01-06 18:52:15.193:E/WindowManager(32139):在android.view.Window$LocalWindowManager.addView(Window.java:424)
01-06 18:52:15.193:E/WindowManager(32139):在android.app.Dialog.show(Dialog.java:241)
01-06 18:52:15.193:E/WindowManager(32139):位于com.flex.sklepik.ReadComments$LoadComments.onPreExecute(ReadComments.java:285)
01-06 18:52:15.193:E/WindowManager(32139):在android.os.AsyncTask.execute(AsyncTask.java:391)
01-06 18:52:15.193:E/WindowManager(32139):位于com.flex.sklepik.ReadComments.onResume(ReadComments.java:147)
01-06 18:52:15.193:E/WindowManager(32139):在android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
01-06 18:52:15.193:E/WindowManager(32139):在android.app.Activity.performResume(Activity.java:3832)
01-06 18:52:15.193:E/WindowManager(32139):位于android.app.ActivityThread.perf
if(isInternetConnection(YourActivity.this){
     //do Internet Stuff
}
else{
     //No Network
}


public static boolean isInternetConnection(Context mContext) {
    final ConnectivityManager connMgr = (ConnectivityManager) mContext
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    final android.net.NetworkInfo wifi = connMgr
            .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    final android.net.NetworkInfo mobile = connMgr
            .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    if (wifi.isAvailable()
            && wifi.getState() == NetworkInfo.State.CONNECTED) {
        return true;
    } else if (null!=mobile && mobile.isAvailable()
            && mobile.getState() == NetworkInfo.State.CONNECTED) {
        return true;
    } else {
        return false;
    }
}
try{
                updateJSONdata();

} catch(Exception e){

}
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
public static boolean isNetworkAvailable(Context context)
{
    ConnectivityManager connectivityManager = 
        (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();

    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
try
{
   if (isNetworkAvailable(context)
      updateJSONData();
}
catch (Exception ex)
{
   // Connection time out
}
01-06 18:52:14.583: E/AndroidRuntime(32139): Caused by: java.lang.NullPointerException
01-06 18:52:14.583: E/AndroidRuntime(32139):    at com.flex.sklepik.ReadComments.updateJSONdata(ReadComments.java:195)