Android 使用Google Places API在Google地图中查找附近的位置

Android 使用Google Places API在Google地图中查找附近的位置,android,google-maps,Android,Google Maps,本Android教程旨在学习如何使用GooglePlacesAPI在GoogleMaps中查找附近的位置。然后,应用程序运行并单击按钮,它不会传递googlePlacesJson值,然后返回null 12-14 15:06:16.266 6095-6095/com.example.tony_.test_no E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.tony_.test_no, PID: 6095 java.lang

本Android教程旨在学习如何使用GooglePlacesAPI在GoogleMaps中查找附近的位置。然后,应用程序运行并单击按钮,它不会传递
googlePlacesJson
值,然后返回null

12-14 15:06:16.266 6095-6095/com.example.tony_.test_no E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.tony_.test_no, PID: 6095
java.lang.NullPointerException
    at com.example.tony_.test_no.PlacesDisplayTask.onPostExecute(PlacesDisplayTask.java:42)
    at com.example.tony_.test_no.PlacesDisplayTask.onPostExecute(PlacesDisplayTask.java:18)
    at android.os.AsyncTask.finish(AsyncTask.java:632)
    at android.os.AsyncTask.access$600(AsyncTask.java:177)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:157)
    at android.app.ActivityThread.main(ActivityThread.java:5867)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:674)
    at dalvik.system.NativeStart.main(Native Method)
12-14 15:06:17.938 6095-6095/com.example.tony_.test_no D/Process: killProcess, pid=6095

请检查下面的代码

public class PlacesDisplayTask extends AsyncTask<Object, Integer, List<HashMap<String, String>>> {

        JSONObject googlePlacesJson;
        GoogleMap googleMap;

        @Override
        protected List<HashMap<String, String>> doInBackground(Object... inputObj) {

            List<HashMap<String, String>> googlePlacesList = null;
            Places placeJsonParser = new Places();

            try {
                googleMap = (GoogleMap) inputObj[0];
                googlePlacesJson = new JSONObject((String) inputObj[1]);
                googlePlacesList = placeJsonParser.parse(googlePlacesJson);
            } catch (Exception e) {
                Log.d("Exception", e.toString());
            }
            return googlePlacesList;
        }

        @Override
        protected void onPostExecute(List<HashMap<String, String>> list) {
            googleMap.clear();
            for (int i = 0; i < list.size(); i++) {
                MarkerOptions markerOptions = new MarkerOptions();
                HashMap<String, String> googlePlace = list.get(i);
                double lat = Double.parseDouble(googlePlace.get("lat"));
                double lng = Double.parseDouble(googlePlace.get("lng"));
                String placeName = googlePlace.get("place_name");
                String vicinity = googlePlace.get("vicinity");
                LatLng latLng = new LatLng(lat, lng);
                markerOptions.position(latLng);
                markerOptions.title(placeName + " : " + vicinity);
                googleMap.addMarker(markerOptions);
            }
        }
    }
公共类位置显示任务扩展异步任务{
JSONObject googlePlacesJson;
谷歌地图谷歌地图;
@凌驾
受保护列表doInBackground(对象…inputObj){
列表googlePlacesList=null;
Places placeJsonParser=new Places();
试一试{
googleMap=(googleMap)inputObj[0];
googlePlacesJson=新的JSONObject((字符串)inputObject[1]);
googlePlacesList=placeJsonParser.parse(googlePlacesJson);
}捕获(例外e){
Log.d(“异常”,例如toString());
}
返回谷歌PlacesList;
}
@凌驾
受保护的void onPostExecute(列表){
googleMap.clear();
对于(int i=0;i
此处的onPostExecute空值请查看可以执行的操作如果您得到空值,可能您没有internet连接