2013-08-08 4 views
6

Ho cercato questo problema per un paio di giorni e ho provato tutto ciò che SO offre senza successo.Google Maps V2 Android funziona come un frammento, ma mostra lo schermo bianco (con controllo zoom) come frammento figlio

quando seguo le istruzioni delineate da Google here, non ho problemi a trovare un generale Google Map visualizzati in una mappa personalizzata Fragment (QMapFragment) che si estende sotto il mio SupportMapFragment FragmentActivity.

(Nota a margine: anche se fornisco una chiave API fittizia, ad esempio "abcd", nel file Manifest.xml, la mappa viene comunque visualizzata correttamente. Sono confuso da questo, ma comunque ...)

Ma quando aggiungo QMapFragment come frammento bambino ad un altro frammento personalizzato, ad esempio, con il seguente codice:

mFrag = QMapFragment.newInstance(new LatLng(location.getLatitude(), location.getLongitude())); 
FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 

transaction.add(R.id.framelayout, mFrag).commit(); 

vedo una schermata vuota con controlli dello zoom viene aggiunto al frammento, e ho questa in LogCat

08-08 13:44:25.914: W/dalvikvm(7057): VFY: unable to resolve instance field 30 
08-08 13:44:25.914: D/dalvikvm(7057): VFY: replacing opcode 0x52 at 0x0012 
08-08 13:44:25.914: D/dalvikvm(7057): VFY: dead code 0x0014-0018 in Lcom/google/android/gms/common/GooglePlayServicesUtil;.b (Landroid/content/res/Resources;)Z 
08-08 13:44:26.000: I/dalvikvm(7057): Total arena pages for JIT: 11 
08-08 13:44:26.180: W/dalvikvm(7057): Unable to resolve superclass of Lmaps/p/w; (734) 
08-08 13:44:26.180: W/dalvikvm(7057): Link of class 'Lmaps/p/w;' failed 
08-08 13:44:26.180: W/dalvikvm(7057): Unable to resolve superclass of Lmaps/ap/as; (6056) 
08-08 13:44:26.180: W/dalvikvm(7057): Link of class 'Lmaps/ap/as;' failed 
08-08 13:44:26.180: W/dalvikvm(7057): Unable to resolve superclass of Lmaps/af/k; (5085) 
08-08 13:44:26.180: W/dalvikvm(7057): Link of class 'Lmaps/af/k;' failed 
08-08 13:44:26.187: E/dalvikvm(7057): Could not find class 'maps.af.k', referenced from method maps.ag.an.a 
08-08 13:44:26.187: W/dalvikvm(7057): VFY: unable to resolve new-instance 4928 (Lmaps/af/k;) in Lmaps/ag/an; 

Screenshot of properties

E no, non ottengo un "Autorizzazione non riuscita" dal debugger e la mia console è impostata su Google Android v2 su Google API.

+1

Questo è molto strano. Se riesci a creare un caso di test riproducibile, potresti considerare l'archiviazione di un problema all'indirizzo http://code.google.com/p/gmaps-api-issues/issues/list. Inoltre, il tuo progetto non ha bisogno delle API di Google - questo è per Maps V1. – CommonsWare

+0

Disinstallare e reinstallare sempre l'app se si verificano questi tipi di problemi. Ho anche notato che il caching delle chiavi API in determinate condizioni. Chiavi API non valide risultanti in una mappa visualizzata correttamente e chiavi API valide che risultano non visualizzate nella mappa: http://www.youtube.com/watch?v=rtWWt2blDTg&feature=c4-overview&list=UU5IDcgLgmrgRhAoTsPk7KpQ – ddewaele

+0

Cosa succede se sostituire 'QMapFragment.newInstance (...)' con 'SupportMapFragment.newInstance()'? –

risposta

0

Mi ricordo di avere lo stesso problema quando si utilizza transaction.add. Da quel momento in poi, una delle mie regole di base è stata quella di non eseguire mai di nuovo transaction.add e utilizzare invece transaction.replace. Provalo, dovrebbe funzionare.

+0

Avevo già provato a usare invece sostituire. Lo stesso comportamento si è verificato. In effetti, il frammento originale veniva ancora visualizzato nonostante la sostituzione. Da allora ho smesso di provare a includere le mappe complete di Google e ho deciso di utilizzare semplicemente [l'API della mappa statica di Google] (https://developers.google.com/maps/documentation/staticmaps/) –