2013-08-08 5 views
6

Ich habe dieses Problem für ein paar Tage erforscht und habe alles versucht, was von SO ohne Erfolg angeboten.Google Maps V2 Android funktioniert als Fragment, aber zeigt weißen Bildschirm (mit Zoomsteuerung) als Kindfragment

Wenn ich Anweisungen von Google here skizzierten folgen, ich habe keine Probleme mit dem allgemein Google Map immer in einem benutzerdefinierten Map Fragment (QMapFragment) angezeigt, die SupportMapFragment unter meinem FragmentActivity erstreckt.

(Side Note: Selbst wenn ich einen Dummy-API-Schlüssel, zB "abcd", in der Manifest.xml, die Karte wird immer noch gut angezeigt. Ich bin davon verwirrt, aber trotzdem ...)

Aber wenn ich QMapFragment als Kind Fragment zu einem anderen benutzerdefinierten Fragmente hinzufügen, zum Beispiel mit dem folgenden Code:

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

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

ich ein leerer Bildschirm mit Zoom-Steuerelemente sehe an das Fragment hinzugefügt wird, und ich bekomme diese 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

Und nein, ich bekomme keine "Authorization Failed" vom Debugger, und meine Konsole ist auf Google Android v2 auf Google API eingestellt.

+1

Das ist sehr seltsam. Wenn Sie einen reproduzierbaren Testfall erstellen können, sollten Sie unter http://code.google.com/p/gmaps-api-issues/issues/list ein Problem melden. Beachten Sie außerdem, dass Ihr Projekt die Google-APIs nicht benötigt - das ist für Maps V1. – CommonsWare

+0

Deinstallieren Sie die App immer vollständig, und installieren Sie sie neu, wenn Sie auf diese Art von Problemen stoßen. Ich habe auch bemerkt, dass API-Key-Caching unter bestimmten Bedingungen. Ungültige API-Schlüssel, die dazu führen, dass eine Karte gut angezeigt wird und gültige API-Schlüssel, die dazu führen, dass eine Karte nicht angezeigt wird: http://www.youtube.com/watch?v=rtWWt2blDTg&feature=c4-overview&list=UU5IDcgLgmrgRhAoTsPk7KpQ – ddewaele

+0

Was passiert, wenn Sie? Ersetzen Sie 'QMapFragment.newInstance (...)' durch 'SupportMapFragment.newInstance()'? –

Antwort

0

Ich erinnere mich, das gleiche Problem bei der Verwendung von transaction.add. Von nun an war eine meiner Grundregeln, transaction.add nie wieder zu verwenden und stattdessen transaction.replace zu verwenden. Probieren Sie es aus, es sollte funktionieren.

+0

hatte ich bereits versucht mit ersetzen statt. Das gleiche Verhalten ist aufgetreten. Tatsächlich wurde das ursprüngliche Fragment trotz der Ersetzung immer noch angezeigt. Seitdem habe ich aufgehört, die vollständigen Google Maps zu verwenden, und habe einfach die [static map API von Google] (https://developers.google.com/maps/documentation/staticmaps/) verwendet. –

Verwandte Themen