Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 地理编码器正在将其中一个值返回为null_Java_Android_Geolocation - Fatal编程技术网

Java 地理编码器正在将其中一个值返回为null

Java 地理编码器正在将其中一个值返回为null,java,android,geolocation,Java,Android,Geolocation,我试图获取国家、州、城市、Pincode、子区域、地址的详细信息。但有时它返回城市为空或子区域为空。这是所附的图片 这是我的密码 String locationCountry = "", locationState = "", locationCity = "", locationPincode = "", locationSubRegion = "", locationAddress = ""; Geocoder gCoder; List<Address> add

我试图获取国家、州、城市、Pincode、子区域、地址的详细信息。但有时它返回城市为空或子区域为空。这是所附的图片

这是我的密码

 String locationCountry = "", locationState = "", locationCity = "", locationPincode = "", locationSubRegion = "", locationAddress = "";
    Geocoder gCoder;
    List<Address> addresses;
    double latitude = 0, longitude = 0;


    GPStracker g = new GPStracker(getApplicationContext());
            Location l = g.getLocation();


            if (l != null) {
                latitude = l.getLatitude();
                longitude = l.getLongitude();

            }else {
                 l = g.getLocation();
            }

            gCoder = new Geocoder(this, Locale.getDefault());

            try {
                addresses = gCoder.getFromLocation(latitude, longitude, 1);
                if (addresses != null && addresses.size() > 0) {

                    locationCountry = addresses.get(0).getCountryName();
                    locationState = addresses.get(0).getAdminArea();
                    locationCity = addresses.get(0).getLocality();
                    locationPincode = addresses.get(0).getPostalCode();
                    locationSubRegion = addresses.get(0).getSubLocality();
                    locationAddress = addresses.get(0).getAddressLine(0);

                }

            } catch (Exception e) {
            }

Geo coder API将根据lat long返回值,如果API数据库没有这些值,那么它将只返回NULL,据我所知,您对此无能为力。你必须优雅地处理这些情况,这样你的应用程序才不会崩溃


处理这些情况包括,您必须使用以下条件进行检查:特定值是否为null或是否具有某个值,因为如果您在代码中某处使用任何值而未进行检查,并且该值为Null,则每当该特定值为Null时,应用程序可能会崩溃。

对于不同的lat long,结果是相同的?代码是用onCreate方法编写的。不,有时我得到局部性,而子局部性为空。但是这两个值中的一些或其他值是空的。这个API将根据lat long返回值,如果API数据库没有这些值,那么它将只返回空值,据我所知,您对此无能为力。你必须优雅地处理这些情况,这样你的应用程序才不会崩溃。好的,你能解释一下我该如何处理吗。