Bom, não consigo encontrar a solução para este erro
06-25 18:47:03.062: E/AndroidRuntime(8021): FATAL EXCEPTION: AsyncTask #1
06-25 18:47:03.062: E/AndroidRuntime(8021): java.lang.RuntimeException: An error occured while executing doInBackground()
06-25 18:47:03.062: E/AndroidRuntime(8021): at android.os.AsyncTask$3.done(AsyncTask.java:299)
06-25 18:47:03.062: E/AndroidRuntime(8021): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
06-25 18:47:03.062: E/AndroidRuntime(8021): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
06-25 18:47:03.062: E/AndroidRuntime(8021): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
06-25 18:47:03.062: E/AndroidRuntime(8021): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-25 18:47:03.062: E/AndroidRuntime(8021): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
06-25 18:47:03.062: E/AndroidRuntime(8021): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
06-25 18:47:03.062: E/AndroidRuntime(8021): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
06-25 18:47:03.062: E/AndroidRuntime(8021): at java.lang.Thread.run(Thread.java:856)
06-25 18:47:03.062: E/AndroidRuntime(8021): Caused by: java.lang.IllegalStateException: Not on the main thread
06-25 18:47:03.062: E/AndroidRuntime(8021): at maps.au.i.b(Unknown Source)
06-25 18:47:03.062: E/AndroidRuntime(8021): at maps.ao.g.b(Unknown Source)
06-25 18:47:03.062: E/AndroidRuntime(8021): at maps.aj.al.b(Unknown Source)
06-25 18:47:03.062: E/AndroidRuntime(8021): at bcn.onTransact(SourceFile:92)
06-25 18:47:03.062: E/AndroidRuntime(8021): at android.os.Binder.transact(Binder.java:326)
06-25 18:47:03.062: E/AndroidRuntime(8021): at com.google.android.gms.maps.internal.IGoogleMapDelegate$a$a.animateCamera(Unknown Source)
06-25 18:47:03.062: E/AndroidRuntime(8021): at com.google.android.gms.maps.GoogleMap.animateCamera(Unknown Source)
06-25 18:47:03.062: E/AndroidRuntime(8021): at com.example.mapas.SincronizaMapa.doInBackground(SincronizaMapa.java:42)
06-25 18:47:03.062: E/AndroidRuntime(8021): at com.example.mapas.SincronizaMapa.doInBackground(SincronizaMapa.java:1)
06-25 18:47:03.062: E/AndroidRuntime(8021): at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-25 18:47:03.062: E/AndroidRuntime(8021): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-25 18:47:03.062: E/AndroidRuntime(8021): ... 5 more
Codigo principal que chama a classe
package com.example.mapas;
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
public class ExemploGPSSimples extends FragmentActivity {
protected GoogleMap map;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.exmeplo_gps);
}
@Override
protected void onResume() {
super.onResume();
configuraGPS();
}
private void configuraGPS() {
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.fragment_gps);
map = mapFragment.getMap();
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
//LatLng local=pegaPosicaoAtual();
Localizador localizador = new Localizador(this);
String endereco="Av. fulano, 913, Porto Alegre, RS";
LatLng local = localizador.getEndereco(endereco);
SincronizaMapa sincronizaMapa = new SincronizaMapa(this,local,map);
sincronizaMapa.execute();
adicionaMarcador(map,local);
map.setMyLocationEnabled(true);
}
private void adicionaMarcador(GoogleMap map2, LatLng local) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(local).title("Luiz").snippet("Casa");
Marker marker = map2.addMarker(markerOptions);
}
private LatLng pegaPosicaoAtual() {
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
return new LatLng(location.getLatitude(), location.getLongitude());
}
}
a classe AsyncTask propriamente dita
[code]
package com.example.mapas;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
public class SincronizaMapa extends AsyncTask<Void, Void, Void> {
private final Activity activity;
private final LatLng local;
private final GoogleMap map;
private ProgressDialog progressDialog;
public SincronizaMapa(Activity activity, LatLng local,
GoogleMap map) {
this.activity = activity;
this.local = local;
this.map = map;
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(activity, "Sincronizando mapa", "Aguarde...",true,true);
}
@Override
protected Void doInBackground(Void... params) {
CameraPosition position = new CameraPosition.Builder()
.target(local)
.bearing(0)
.tilt(0)
.zoom(17)
.build();
CameraUpdate update = CameraUpdateFactory.newCameraPosition(position);
map.animateCamera(update);
return null;
}
@Override
protected void onPostExecute(Void result) {
progressDialog.dismiss();
}
}[/code]
Obrigado