Android IndexOutOfBoundsException:索引0无效,大小为0-正在将地址数组转换为latlng

Android IndexOutOfBoundsException:索引0无效,大小为0-正在将地址数组转换为latlng,android,arrays,Android,Arrays,我试图将一个地址数组转换为latlng,它给出了一个错误,表示越界,但是我在logcat上检查了它,所有的地址都存在,这意味着它不是空的 错误: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err: at java.util.ArrayList.thr

我试图将一个地址数组转换为latlng,它给出了一个错误,表示越界,但是我在logcat上检查了它,所有的地址都存在,这意味着它不是空的

错误:

java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:     at java.util.ArrayList.get(ArrayList.java:308)
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:     at homeseek.app.android.capstonehomeseek.ListingNearbyResults.getLocationFromAddress(ListingNearbyResults.java:425)
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:     at homeseek.app.android.capstonehomeseek.ListingNearbyResults.jsonDetails(ListingNearbyResults.java:238)
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:     at homeseek.app.android.capstonehomeseek.ListingNearbyResults.access$000(ListingNearbyResults.java:65)
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:     at homeseek.app.android.capstonehomeseek.ListingNearbyResults$1.onResponse(ListingNearbyResults.java:199)
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:     at homeseek.app.android.capstonehomeseek.ListingNearbyResults$1.onResponse(ListingNearbyResults.java:196)
数组值:

{清单:[{property\u id:1,property\u name:hotd,property\u type:Board 房屋,期限:每月,城市:达沃,地址:蒙特维德街337号, 达沃 城市,地块面积:,楼层面积:,价格:2000,卧室:1,浴室:1,主人姓名:jords,主人联系电话:09457642546,主人详细信息:Heeiddudebeksdidh,上市日期:2016-12-06},{物业id:2,物业名称:Don 洛伦佐 住所,财产类型:房屋,期限:每周,城市:达沃,地址:桑 普安达沃洛伦佐村 城市,地段面积:,楼层面积:,价格:25000,卧室1间,浴室1间,主人姓名:格洛德尔 卡皮多斯,主持人联系电话:09123456789,主持人详细信息:仅联系 以上数字可获取更多信息 infos,上市日期:2016-12-06},{property\u id:3,property\u name:sample,property\u type:Board 房屋,期限:每月,城市:达沃,地址:蒙特维德街377号, 达沃 城市,地块面积:,楼层面积:,价格:2000,卧室:2,浴室:2,主持人姓名:jords,主持人联系人:0910987263,主持人详细信息:样本,上市日期:2016-12-06}],数据:true}

以下是我收到的指示错误发生的代码部分:

public LatLng getLocationFromAddress(Context context,String strAddress) {

        Geocoder coder = new Geocoder(context);
        List<Address> address;
        LatLng p1 = null;

        try {
            address = coder.getFromLocationName(strAddress, 5);
            if (address == null) {
                return null;
            }
            Address location = address.get(0);
            location.getLatitude();
            location.getLongitude();

            p1 = new LatLng(location.getLatitude(), location.getLongitude() );

        } catch (Exception ex) {

            ex.printStackTrace();
        }

        return p1;
    }
地址位置=Address.get0

这就是我使用getlocationfromAddress方法的地方

if(hasData){
                Toast.makeText(getApplicationContext(), arrayResponse.length() + " properties found.", Toast.LENGTH_SHORT).show();
                for(int x = 0; x < arrayResponse.length(); x++) {
                    JSONObject jsonObject = arrayResponse.getJSONObject(x);
                    property_id[x] = jsonObject.getString("property_id");
                    property_name[x] = jsonObject.getString("property_name");
                    type[x] = jsonObject.getString("property_type");
                    price[x] = jsonObject.getString("price");
                    address[x] = jsonObject.getString("address");

                    LatLng latLng = getLocationFromAddress(this, address[x]);
                    latitude = latLng.latitude;
                    longitude = latLng.longitude;

                    locationA = new Location("point A");

                    locationA.setLatitude(mLat);
                    locationA.setLongitude(mLng);

                    locationB = new Location("point B");

                    locationB.setLatitude(latitude);
                    locationB.setLongitude(longitude);

                    double listingDistance = locationA.distanceTo(locationB) / 1000;
                    distance[x] = Math.round(listingDistance);

                }

谢谢你的帮助,不要直接使用数组,先将你的值存储在字符串变量中,然后将它们存储在Arraylist中,以后再使用它们

像这样,

List<String> property=new ArrayList<>();
String property_id=jsonObject.getString("property_id");
property.add(property_id);