Android 致命异常:AsyncTask#4 java.lang.RuntimeException:执行doInBackground()时出错

Android 致命异常:AsyncTask#4 java.lang.RuntimeException:执行doInBackground()时出错,android,android-asynctask,google-places-api,android-mapview,google-nearby,Android,Android Asynctask,Google Places Api,Android Mapview,Google Nearby,请帮助我,我不知道如何解决这个问题,我的代码错误,出现如下情况: 2020-08-24 15:29:36.424 25891-26358/com.cryptbrn.treasify E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #4 Process: com.cryptbrn.treasify, PID: 25891 java.lang.RuntimeException: An error occurred while executin

请帮助我,我不知道如何解决这个问题,我的代码错误,出现如下情况:

2020-08-24 15:29:36.424 25891-26358/com.cryptbrn.treasify E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #4
    Process: com.cryptbrn.treasify, PID: 25891
    java.lang.RuntimeException: An error occurred while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:353)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
        at java.util.concurrent.FutureTask.run(FutureTask.java:271)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
        at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
        at org.json.JSONTokener.nextValue(JSONTokener.java:94)
        at org.json.JSONObject.<init>(JSONObject.java:159)
        at org.json.JSONObject.<init>(JSONObject.java:176)
        at com.cryptbrn.treasify.fragment.LocationFragment$ParserTask.doInBackground(LocationFragment.java:252)
        at com.cryptbrn.treasify.fragment.LocationFragment$ParserTask.doInBackground(LocationFragment.java:245)
        at android.os.AsyncTask$2.call(AsyncTask.java:333)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 
        at java.lang.Thread.run(Thread.java:764) 
2020-08-24 15:29:36.478 25891-25950/com.cryptbrn.treasify V/FA: Recording user engagement, ms: 5494
2020-08-24 15:29:36.520 25891-25950/com.cryptbrn.treasify V/FA: Activity paused, time: 607133467
2020-08-24 15:29:36.626 25891-25985/com.cryptbrn.treasify D/OpenGLRenderer: endAllActiveAnimators on 0x78542af000 (RippleDrawable) with handle 0x7854112e80
2020-08-24 15:29:38.098 25891-26121/com.cryptbrn.treasify W/OkHttpClient: A connection to https://firebasestorage.googleapis.com/ was leaked. Did you forget to close a response body?
2020-08-24 15:29:38.098 25891-26121/com.cryptbrn.treasify W/OkHttpClient: A connection to https://firebasestorage.googleapis.com/ was leaked. Did you forget to close a response body?
2020-08-24 15:29:38.098 25891-26121/com.cryptbrn.treasify W/OkHttpClient: A connection to https://maps.googleapis.com/ was leaked. Did you forget to close a response body?
2020-08-24 15:29:38.532 25891-25950/com.cryptbrn.treasify D/FA: Application going to the background
2020-08-24 15:29:36.424 25891-26358/com.cryptbrn.treasify E/AndroidRuntime:致命异常:异步任务4
进程:com.cryptbrn.treasify,PID:25891
java.lang.RuntimeException:执行doInBackground()时出错
在android.os.AsyncTask$3.done(AsyncTask.java:353)
位于java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
位于java.util.concurrent.FutureTask.setException(FutureTask.java:252)
位于java.util.concurrent.FutureTask.run(FutureTask.java:271)
在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
运行(Thread.java:764)
原因:java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“int java.lang.String.length()”
位于org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
位于org.json.JSONTokener.nextValue(JSONTokener.java:94)
位于org.json.JSONObject(JSONObject.java:159)
位于org.json.JSONObject(JSONObject.java:176)
位于com.cryptbrn.treasify.fragment.LocationFragment$ParserTask.doInBackground(LocationFragment.java:252)
位于com.cryptbrn.treasify.fragment.LocationFragment$ParserTask.doInBackground(LocationFragment.java:245)
位于android.os.AsyncTask$2.call(AsyncTask.java:333)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
运行(Thread.java:764)
2020-08-24 15:29:36.478 25891-25950/com.cryptbrn.treasify V/FA:记录用户参与度,ms:5494
2020-08-24 15:29:36.520 25891-25950/com.cryptbrn.treasify V/FA:活动暂停,时间:607133467
2020-08-24 15:29:36.626 25891-25985/com.cryptbrn.treasify D/OpenGLRenderer:0x78542af000(RippleDrawable)上带有句柄0x7854112e80的EndAllActivateAnimator
2020-08-24 15:29:38.098 25891-26121/com.cryptbrn.treasify W/OkHttpClient:连接到https://firebasestorage.googleapis.com/ 被泄露了。你忘了关闭一个响应机构了吗?
2020-08-24 15:29:38.098 25891-26121/com.cryptbrn.treasify W/OkHttpClient:连接到https://firebasestorage.googleapis.com/ 被泄露了。你忘了关闭一个响应机构了吗?
2020-08-24 15:29:38.098 25891-26121/com.cryptbrn.treasify W/OkHttpClient:连接到https://maps.googleapis.com/ 被泄露了。你忘了关闭一个响应机构了吗?
2020-08-24 15:29:38.532 25891-25950/com.cryptbrn.treasify D/FA:应用程序进入后台
LocationFragment.java

package com.cryptbrn.treasify.fragment;
导入android.Manifest;
导入android.content.Intent;
导入android.content.pm.PackageManager;
导入android.location.location;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入androidx.annotation.NonNull;
导入androidx.annotation.Nullable;
导入androidx.core.app.ActivityCompat;
导入androidx.fragment.app.fragment;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入com.cryptbrn.treasify.InsertPostActivity;
导入com.cryptbrn.treasify.JsonParser;
导入com.cryptbrn.treasify.R;
导入com.google.android.gms.location.FusedLocationProviderClient;
导入com.google.android.gms.location.LocationServices;
导入com.google.android.gms.maps.CameraUpdate;
导入com.google.android.gms.maps.CameraUpdateFactory;
导入com.google.android.gms.maps.GoogleMap;
导入com.google.android.gms.maps.MapView;
导入com.google.android.gms.maps.mapsintializer;
导入com.google.android.gms.maps.OnMapReadyCallback;
导入com.google.android.gms.maps.model.LatLng;
导入com.google.android.gms.maps.model.MarkerOptions;
导入com.google.android.gms.tasks.OnSuccessListener;
导入com.google.android.gms.tasks.Task;
导入com.google.android.material.floatingactionbutton.floatingactionbutton;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.net.HttpURLConnection;
导入java.net.URL;
导入java.util.HashMap;
导入java.util.List;
/**
*一个简单的{@link Fragment}子类。
*使用{@link LocationFragment#newInstance}工厂方法
*创建此片段的实例。
*/
公共类LocationFragment在MapreadyCallback上扩展了片段实现{
谷歌地图;
地图视图;
FusedLocationProviderClient FusedLocationProviderClient;
双currentLat=0,currentLong=0;
//TODO:重命名参数参数,选择匹配的名称
//片段初始化参数,例如ARG_ITEM_NUMBER
私有静态最终字符串ARG_PARAM1=“PARAM1”;
私有静态最终字符串ARG_PARAM2=“PARAM2”;
//TODO:重命名和更改参数类型
私有字符串mParam1;
私有字符串mParam2;
公共位置片段(){
//必需的空公共构造函数
}
/**
*使用此工厂方法创建的新实例
*使用提供的参数创建此片段。
*
*@param param1参数1。
*@param param2参数2。
*@return fragment LocationFragment的新实例。
*/
//TODO:重命名和更改参数的类型和数量
公共静态位置片段newInstance(字符串param1,字符串param2){
LocationFragment=新的LocationFragment();
Bundle args=new Bu
private class PlaceTask extends AsyncTask<String,Integer,String> {
        @Override
        protected String doInBackground(String... strings) {
            String data = null;
            try {
                data = downloadUrl(strings[0]);
            } catch (IOException e) {
                e.printStackTrace(); // HERE exception
            }
            return data; // HERE IT IS NULL
        }

        @Override
        protected void onPostExecute(String s) {
            new ParserTask().execute(s); // Here you pass null to ParserTask()
        }
    }