Saltar para conteúdo


Foto
- - - - -

Problema no uso do google maps API


  • Por favor inicie sessão para responder
12 respostas a este tópico

#1 miguel5655

miguel5655

    Membro

  • Membros
  • PipPip
  • 13 mensagens

Mensagem publicada 21 March 2011 - 22:24

Boas pessoal, estou a tentar utilizar o google maps na minha aplicação.Algo do género, carregar num botão visualizar no google maps, e ele vai buscar a cidade introduzida anteriormente numa editText e mostra no google maps.Tenho uma aplicação independente em que só mostra o google maps e está a funcionar bem, mas quando quero integrar o google maps com a minha aplicação quando carrego no botão ele gera um erro e fecha.Vou passar aqui o código do manifest, porque penso que o erro está aí.A classe java com o codigo do google maps chama-se .Mapas Aqui é onde chamo a classe Mapas na classe do menu.View.OnClickListener myhandler3 = new View.OnClickListener() { @Override public void onClick(View v) { Intent intencao = new Intent(tela2.this, Mapas.class); startActivity(intencao); }};Classe Mapaspackage com.example.Locais;import com.google.android.maps.*;import android.os.Bundle;import com.example.Locais.R;import android.os.Handler;import android.os.Message;import android.widget.TextView;import android.location.Location;import android.location.LocationManager;public class Mapas extends MapActivity implements Runnable { double dLat; double dLng; MapController mapController; LocationManager locationManager; TextView tvLat; TextView tvLng; final int REFRESH_GPS = 1; Handler hRefresh; MyLocationOverlay myLocationOverlay; Location location; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mapas); MapView mapView =(MapView) findViewById(R.id.map_view); myLocationOverlay = new MyLocationOverlay(this, mapView); myLocationOverlay.runOnFirstFix(this); myLocationOverlay.enableMyLocation(); mapView.getOverlays().add(myLocationOverlay); //Coloca zoom controls mapView.setBuiltInZoomControls(true); // Muda para a vista de satélite mapView.setSatellite(true); dLat = 38.733660; dLng = -9.145174; mapController = mapView.getController(); mapController.setZoom(19); mapController.animateTo(new GeoPoint((int) (dLat*1E6),(int) (dLng*1E6))); locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); tvLat = (TextView) findViewById(R.id.lat); tvLng = (TextView) findViewById(R.id.lng); tvLat.setText("Lat: " + String.valueOf(dLat).substring(0,6)); tvLng.setText("Lng: " + String.valueOf(dLng).substring(0,6)); hRefresh = new Handler() { public void handleMessage(Message msg) { switch(msg.what) { case REFRESH_GPS: Location newLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); if (location != null && location.distanceTo(newLocation)<1) break; location = newLocation; myLocationOverlay.onLocationChanged(location); dLat = location.getLatitude(); dLng = location.getLongitude(); mapController.animateTo(new GeoPoint((int) (dLat*1E6), (int)(dLng*1E6))); tvLat.setText("Lat: " + String.valueOf(dLat).substring(0,6)); tvLng.setText("Lng: " + String.valueOf(dLng).substring(0,6)); break; } } }; } // De 5 em 5 segundos, invoca o metodo SendEmptyMessage para refrescar a posição public void run() { while(true) { try { Thread.sleep(5000); } catch(InterruptedException e) { //não faz nada System.out.println("Erro na thread"); } try { hRefresh.sendEmptyMessage(REFRESH_GPS); } catch (Exception e) { e.printStackTrace(); } } } @Override protected boolean isRouteDisplayed() { return false; } }Se alguém souber o que estou errando diga.Obrigado

#2 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 21 March 2011 - 22:48

O que diz o logcat?

#3 miguel5655

miguel5655

    Membro

  • Membros
  • PipPip
  • 13 mensagens

Mensagem publicada 22 March 2011 - 02:26

Pode parecer muito ignorante, mas eu não sei nem vejo nenhum erro além de quando clico no botão que programei para arrancar a classe dos mapas, ele diz que foi forçado a encerrar.Obrigado

#4 pedronveloso

pedronveloso

    Veloso

  • Administradores
  • 1578 mensagens
  • S8

Mensagem publicada 22 March 2011 - 02:47

O erro tens de ver no computador, não é no dispositivo. Tens de usar o adb logcat (http://androidpt.info/index.php?title=ADB) , ou então se estiveres no Eclipse basta-te passar para a vista de nome DDMS (deverá estar no topo direito).

#5 miguel5655

miguel5655

    Membro

  • Membros
  • PipPip
  • 13 mensagens

Mensagem publicada 22 March 2011 - 13:31

Obrigado pela explicação,sim uso o Eclipse.Estes foram os erros que apareceram quando cliquei no botão que daria para aceder ao google maps.Obrigadro
03-22 13:25:24.331: WARN/dalvikvm(381): threadid=1: thread exiting with uncaught exception (group=0x40015560)03-22 13:25:24.382: ERROR/AndroidRuntime(381): FATAL EXCEPTION: main03-22 13:25:24.382: ERROR/AndroidRuntime(381): java.lang.NoClassDefFoundError: com.example.Locais.Mapas03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at com.example.Locais.tela2$3.onClick(tela2.java:65)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at android.view.View.performClick(View.java:2485)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at android.view.View$PerformClick.run(View.java:9080)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at android.os.Handler.handleCallback(Handler.java:587)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at android.os.Handler.dispatchMessage(Handler.java:92)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at android.os.Looper.loop(Looper.java:123)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at android.app.ActivityThread.main(ActivityThread.java:3683)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at java.lang.reflect.Method.invokeNative(Native Method)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at java.lang.reflect.Method.invoke(Method.java:507)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at dalvik.system.NativeStart.main(Native Method)03-22 13:25:24.382: ERROR/AndroidRuntime(381): Caused by: java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at dalvik.system.DexFile.defineClass(Native Method)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:207)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:200)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)03-22 13:25:24.382: ERROR/AndroidRuntime(381):     ... 12 more


#6 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 22 March 2011 - 13:55

experimenta alterar isto:

Intent intencao = new Intent(tela2.this, Mapas.class);

para isto

Intent intencao = new Intent(this, Mapas.class);



#7 miguel5655

miguel5655

    Membro

  • Membros
  • PipPip
  • 13 mensagens

Mensagem publicada 22 March 2011 - 14:05

Alterando só isso, não consigo, dá erro no código.Obrigado

#8 pedronveloso

pedronveloso

    Veloso

  • Administradores
  • 1578 mensagens
  • S8

Mensagem publicada 22 March 2011 - 15:02

Primeiro de tudo. Tira os "android:exported="true" " do código do Manifest, a não ser que querias que aplicações externas acedam à tua aplicação, aquilo não deveria lá estar.Depois no Eclipse faz Project > Clean e limpa o projecto, e volta a compilar. Vê se resolveu.Já agora, para a próxima cola o código no pastebin.com e dás-nos o URL, é que o fórum não é a melhor escolha para visualizar o mesmo :\.

#9 miguel5655

miguel5655

    Membro

  • Membros
  • PipPip
  • 13 mensagens

Mensagem publicada 22 March 2011 - 15:43

Já retirei e continua igual.Deixo então aqui os links com o que acho necessário para conseguirem ver melhor o que tenho.ObrigadoAqui é chamada a classe .Mapas no menu principalhttp://pastebin.com/XdNexnfeAqui está o Manifesthttp://pastebin.com/LHZhRvXLAqui está a classe Java Mapashttp://pastebin.com/dXAU98Ey

#10 pedronveloso

pedronveloso

    Veloso

  • Administradores
  • 1578 mensagens
  • S8

Mensagem publicada 25 March 2011 - 20:10

Estás a compilar com as Google APIs? É que parece-me que isso é um erro de uma linkagem que ficou mal feito, e ele não reconheçe a class que estás a chamar. Fizes-te project clean certo?

#11 kripton

kripton

    Membro

  • Membros
  • PipPip
  • 13 mensagens
  • LocalizaçãoAveiro

Mensagem publicada 18 May 2011 - 11:49

Alguém já resolveu isto??? Estou com o mesmo problema ao tentar abrir o map.

#12 kripton

kripton

    Membro

  • Membros
  • PipPip
  • 13 mensagens
  • LocalizaçãoAveiro

Mensagem publicada 19 May 2011 - 21:12

Já encontrei a solução.Quem tiver o mesmo problema que me mande uma PM.Depois quando tiver tempo posto aqui a solução...

#13 marisalima

marisalima

    Novato

  • Membros
  • Pip
  • 1 mensagens

Mensagem publicada 01 June 2011 - 13:19

Boas. Estou com o mesmo problema, será que me pode enviar por email a solução? [email protected]!