为什么我的IF语句会被跳过?

时间:2014-01-24 09:48:21

标签: java android if-statement

我的android应用程序正在跳过IF语句:

 Geocoder gcd = new Geocoder(this, Locale.UK);
            List<Address> addresses = gcd.getFromLocation(curLatitude, curLongitude,1);

            if (addresses.size() > 0) //this is skipped
            {
                StringBuilder cityName = new StringBuilder();                
                cityName.append(addresses.get(0).getLocality());
                CityName = cityName.toString();

昨天和今天工作正常由于一些不明原因而被忽略了。你能告诉我为什么吗?

4 个答案:

答案 0 :(得分:0)

这可能是由于两个原因:

  1. IF语句之前的行中,会抛出Exception
  2. addresses没有元素
  3. 您应该检查addresses长度并捕获任何可能的Exception以了解您的条件未执行的原因。

答案 1 :(得分:0)

根据documentation方法getFromLocation

  

返回Address对象列表。如果不是,则返回 null或空列表   找到匹配项或没有可用的后端服务。

这意味着您传递的坐标不包含任何地址。

答案 2 :(得分:0)

  • 您肯定会收到例外情况(“服务不可用”)。
  • 或者您是否通过发送太多请求达到了限制?

看看这里: https://code.google.com/p/android/issues/detail?id=38009

答案 3 :(得分:0)

你的地址对象可能有以下问题:1)地址可能为空,因此可能发生nullpointerexception 2)你的地址列表没有元素所以它可能总是返回0