为什么我的应用程序在第一次打开时在空对象上使用java.lang.String java.lang.String.substring(int)崩溃,但第二次却能正常工作?

时间:2019-01-11 21:13:52

标签: java android

你好,谢谢,

我正在尝试从USGS网站解析经度和纬度数据,然后使用for循环为地图活动中的每次地震设置一个图钉。此值的格式 [-102.684,38.47,5] ,其中-102.684、38.47和5分别是经度,纬度和深度

这是我在maps活动中的for循环:

    for (int i = 0; i < 30; i++) {


        String finalLongitudeString = longitudeArray[i].substring(1);
        double longitudeDouble = Double.parseDouble(finalLongitudeString);


        String finalLatitudeString = latitudeArray[i];
        double latitudeDouble = Double.parseDouble(finalLatitudeString);

        LatLng earthquake = new LatLng(latitudeDouble, longitudeDouble);
        mMap.addMarker(new MarkerOptions().position(earthquake).title(locationArray[i]));

    }

这是我从JSON提取数据的方式:

coordinatesArray =  coordinates.split(",");

            longitude = coordinatesArray[0];
            latitude = coordinatesArray[1];
            depth = coordinatesArray[2];

            longitudeArray[i] = longitude;
            latitudeArray[i] = latitude;
            depthArray[i] = depth;

            locationArray[i] = location;

我正在使用longitudeArray [i] .substring(1)删除经度值开头的[。

当我去地震活动时,应用程序崩溃,并显示错误“尝试在空对象上调用虚拟方法'java.lang.String java.lang.String.substring(int)'”

但是,当我重新打开应用程序时,它不会崩溃。 以下是崩溃后打开应用后的外观截图: LsitView of earthquakes Map view of earthquakes

此问题被标记为重复,但是我在标记为重复的文章中找不到我想要的答案。

0 个答案:

没有答案