Autore Topic: HelloGoogleMaps - Forced Close  (Letto 754 volte)

Offline zon

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Win7
HelloGoogleMaps - Forced Close
« il: 13 Dicembre 2010, 14:40:56 CET »
0
Buon giorno a tutti,
mi scuso in anticipo per la probabile banalità del mio problema ma mi approccio solo ora ad Android e devo farlo x forza per la tesi  :-P

Il problema è che ho seguito passo passo il seguente tutorial :

http://developer.android.com/resources/tutorials/views/hello-mapview.html

riuscendo a capire praticamente tutto ma non perchè mi si solleva un'eccezione nel momento in cui clikko sul "overlayitem"
dandomi ovviamente una chiusura inaspettata dell'applicazione.
vi posto il codice che inserisce l'item in HelloGoogleMaps.java
Codice (Java): [Seleziona]
 
itemizedoverlay.addOverlay(overlayitem);
itemizedoverlay.addOverlay(overlayitem2);
mapOverlays.add(itemizedoverlay);

e quello che gestisce questi items nella classe HelloItemizedOverlay.java
Codice (Java): [Seleziona]
@Override
      protected boolean onTap(int index) {
          OverlayItem item = mOverlays.get(index);
          AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
          dialog.setTitle(item.getTitle());
          dialog.setMessage(item.getSnippet());
          dialog.show();
          return true;
        }

le righe significative del LogCat invece sono:
Codice: [Seleziona]
12-13 13:20:33.302: DEBUG/AndroidRuntime(456): Shutting down VM
12-13 13:20:33.302: WARN/dalvikvm(456): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
12-13 13:20:33.312: ERROR/AndroidRuntime(456): Uncaught handler: thread main exiting due to uncaught exception
12-13 13:20:33.342: ERROR/AndroidRuntime(456): java.lang.NullPointerException
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at com.android.internal.app.AlertController$AlertParams.<init>(AlertController.java:753)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at android.app.AlertDialog$Builder.<init>(AlertDialog.java:273)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at com.example.hellogooglemaps.HelloItemizedOverlay.onTap(HelloItemizedOverlay.java:42)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at com.google.android.maps.ItemizedOverlay.onTap(ItemizedOverlay.java:453)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at com.google.android.maps.OverlayBundle.onTap(OverlayBundle.java:83)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at com.google.android.maps.MapView$1.onSingleTapUp(MapView.java:346)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at android.view.GestureDetector.onTouchEvent(GestureDetector.java:506)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at com.google.android.maps.MapView.onTouchEvent(MapView.java:628)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at android.view.View.dispatchTouchEvent(View.java:3709)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:852)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at android.os.Looper.loop(Looper.java:123)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at android.app.ActivityThread.main(ActivityThread.java:4363)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at java.lang.reflect.Method.invokeNative(Native Method)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at java.lang.reflect.Method.invoke(Method.java:521)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12-13 13:20:33.342: ERROR/AndroidRuntime(456):     at dalvik.system.NativeStart.main(Native Method)
ho provato a chiudere anche tutte e 2 la parti di codici con un try catch ma l'errore è lo stesso.
ho provato anche con diversi emulatori con diverse versioni di Google API's ma sempre lo stesso errore.
Ovviamente tutto il resto funziona, la mappa si ingrandisce, si sposta, si rimpicciolisce e posso cambiare anche i punti dove mettere gli items.
Qualcuno può gentilmente aiutarmi? sono arenato da stamattina...

Grazie in anticipo a chiunque mi dedichi un minuto...

Zon
« Ultima modifica: 13 Dicembre 2010, 14:44:04 CET da zon »

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:HelloGoogleMaps - Forced Close
« Risposta #1 il: 13 Dicembre 2010, 14:53:14 CET »
0
sicuro che mContext non sia null?
cosa c'è alla riga 42 di quel file?
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline zon

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Win7
Re:HelloGoogleMaps - Forced Close
« Risposta #2 il: 13 Dicembre 2010, 15:16:21 CET »
0
sicuro che mContext non sia null?
cosa c'è alla riga 42 di quel file?

effettivamente potrebbe essere, a riga 42 ho:
Codice (Java): [Seleziona]
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
allora ho guardato il costruttore ed è:
Codice (Java): [Seleziona]
public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
                  super(defaultMarker);
                  mContext = context;
        }

quindi ho provato a modificare la chiamata al costruttore che era:
Codice (Java): [Seleziona]
HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable);
mentre ora è:
Codice (Java): [Seleziona]
HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable,this);
e il paradosso è che non mi visualizza + l'immagine drawable ma se clikko come se ci fosse (nel punto) il dialog compare correttamente  o_O

Offline zon

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Win7
Re:HelloGoogleMaps - Forced Close
« Risposta #3 il: 13 Dicembre 2010, 16:28:59 CET »
0
ho trovato la soluzione in questo post:
http://www.anddev.it/index.php/topic,15.0.html[/url]
nel codice modificato da Daniele e sinceramente non capisco come diavolo fanno le guide quelli di "[url]http://developer.android.com"
non sono proprio poche e poco significative le modifiche  >:( uff

cmq qualcuno ha voglia di spiegarmi questa differenza di chiamata del costruttore "super"
Codice (Java): [Seleziona]
super(defaultMarker);                                                             //che non funziona e
super(boundCenterBottom(defaultMarker));                          //come fa a capire il context che lo sta chiamando?

cmq segnalo come risolto...