Постоянно получая java .lang.IndexOutOfBoundsException: индекс: 0, размер: 0 - PullRequest
0 голосов
/ 30 апреля 2020

я получаю следующую ошибку при попытке отладки приложения, приложение работает без cra sh, но не может загрузить другое местоположение на карте,

W/System.err: org.json.JSONException: Index 0 out of range [0..0)
W/System.err:     at org.json.JSONArray.get(JSONArray.java:295)
    at org.json.JSONArray.getJSONObject(JSONArray.java:523)
W/System.err:     at praneeth.dev.androidpolorserver.TrackingOrder$1.onResponse(TrackingOrder.java:138)
W/System.err:     at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1.lambda$onResponse$0$DefaultCallAdapterFactory$ExecutorCallbackCall$1(DefaultCallAdapterFactory.java:82)
    at retrofit2.-
W/System.err:     at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
W/System.err:     at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7682)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
W/System.err: Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
W/System.err:     at java.util.ArrayList.get(ArrayList.java:437)
    at org.json.JSONArray.get(JSONArray.java:289)
    ... 11 more

это мой код onResponse,

 public void onResponse(Call<String> call, Response<String> response) {
            try {
                JSONObject jsonObject = new JSONObject(response.body().toString());

                String lat = ((JSONArray)jsonObject.get("results"))
                                .getJSONObject(0)
                                .getJSONObject("geometry")
                                .getJSONObject("location")
                                .get("lat").toString();

                String lng = ((JSONArray)jsonObject.get("results"))
                        .getJSONObject(0)
                        .getJSONObject("geometry")
                        .getJSONObject("location")
                        .get("lng").toString();

                LatLng orderLocation = new LatLng(Double.parseDouble(lat),Double.parseDouble(lng));

                Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.foodagent);
                bitmap = Common.scaledBitmap(bitmap,70,70);

                MarkerOptions marker = new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(bitmap))
                                        .title("Order of "+Common.currentRequest.getPhone())
                                        .position(orderLocation);

                mMap.addMarker(marker);

                mService.getDirections(yourLocation.latitude+","+yourLocation.longitude,
                        orderLocation.latitude+","+orderLocation.longitude,"API_CODE")
                            .enqueue(new Callback<String>() {
                                @Override
                                public void onResponse(Call<String> call, Response<String> response) {
                                    new ParseTask().execute(response.body().toString());
                                }

                                @Override
                                public void onFailure(Call<String> call, Throwable t) {

                                }
                            });

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

вызов toString () также является избыточным, может ли кто-нибудь помочь мне решить эту проблему. я застрял в этом в течение нескольких дней

...