Alguém saberia o que posso fazer para não ocorrer esse erro?
Detalhe, a primeira vez que é executado ocorre essa exception, mas quando retorno a executar a função ele retorna o resultado.
eu passei por um problema parecido recentemente e no meu caso era o gps e/ou a internet que demoravam a iniciar seus serviços eu simplesmente coloquei um delay para dar tempo de iniciar certinho o serviço e funcionou.
Então achei uma solução um pouco menos radical do delay, foi fazer números de tentativas, 3 para mim funcionou legal.
Haja visto que se for mais do que isso vai ficar lento a resposta para o usuário.
[code]@Override
protected String doInBackground(Location… params) {
Geocoder geocoder = new Geocoder(mContext, Locale.getDefault());
Location loc = params[0];
List addresses = null;
//Tenta ate 3 vezes. Geralmente vai na primeira. Quando muito na segunda.
for (int i = 0; 2 > i; i++) {
try {
addresses = geocoder.getFromLocation(loc.getLatitude(), loc.getLongitude(), 1);
} catch (IOException e) {
continue;
}
if(i >= 1)
Log.w("Loop de tentativas pra pegar enderecos", ""+i);
break;
}
if (addresses != null && addresses.size() > 0) {
Address address = addresses.get(0);
cidade = address.getAdminArea();
estado = address.getLocality();
pais = address.
De que maneira exatamente vc adicionou o delay para esperar até que o serviços necessários tenham sidos iniciados?
Tem como vc postar o trecho do código?