wake-up-neo.com

Android Google Map API V2 Leerer Bildschirm

Hallo, ich habe vor kurzem Vogellas Tutorial zu Google Map API v2 verfolgt. Der Code ist seinem ähnlich. Aber aus irgendeinem Grund ist die Karte leer und der Logcat zeigt auch keinen Fehler. Ich bin auch diesem Video gefolgt, um den SHA1-Fingerabdruck zu erhalten, und habe dann den API-Schlüssel in die Manifest-Datei eingefügt. Ich habe den Debug-Keystore C:\Users\UserName.Android\debug.keystore verwendet. Dies ist auch der Standard-Debug-Keystore in Eclipse -> Windows -> Preference -> Android -> Build.

Ich habe auch einen neuen API-Schlüssel generiert, der immer noch nicht funktioniert.

Manifestdatei:

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.barcodelibrary"
    Android:versionCode="1"
    Android:versionName="1.0" >

    <uses-sdk
        Android:minSdkVersion="11"
        Android:targetSdkVersion="15" />

    <permission
        Android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
        Android:protectionLevel="signature" />

    <uses-feature
        Android:glEsVersion="0x00020000"
        Android:required="true" />
    <uses-feature Android:name="Android.hardware.camera" />
    <uses-feature Android:name="Android.hardware.camera.autofocus" />
    <uses-feature Android:name="Android.hardware.camera.flash" />

    <uses-permission Android:name="Android.permission.INTERNET"/>
    <uses-permission Android:name="Android.permission.CAMERA"/>
    <uses-permission Android:name="Android.permission.INTERNET"/>
    <uses-permission Android:name="Android.permission.VIBRATE"/>
    <uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission Android:name="Android.permission.SET_DEBUG_APP"></uses-permission>
    <application
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name"
        Android:theme="@style/AppTheme" >
        <activity
            Android:name=".HomeActivity"
            Android:label="@string/title_activity_home" >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>
        <activity Android:name=".ScanActivity"/>
        <activity Android:name=".MapActivity"/>
        <activity Android:name=".BarcodeHelper"/>
        <activity Android:name=".JsonHelper"/>

        <meta-data
            Android:name="com.google.Android.maps.v2.API_KEY"
            Android:value="my api key" />
    </application>

</manifest>

Dies ist meine Layoutdatei für die Kartenaktivität:

    <RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    tools:context=".MapActivity" >

        <fragment
        Android:id="@+id/map"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        class="com.google.Android.gms.maps.MapFragment" />

</RelativeLayout>

Dies ist meine Kartenaktivität:

public class MapActivity extends Activity 
{
    static final LatLng HAMBURG = new LatLng(53.558, 9.927);
    static final LatLng KIEL = new LatLng(53.551, 9.993);
    private GoogleMap map;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map);

        map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
                .getMap();
            Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
                .title("Hamburg"));
            Marker kiel = map.addMarker(new MarkerOptions()
                .position(KIEL)
                .title("Kiel")
                .snippet("Kiel is cool")
                .icon(BitmapDescriptorFactory
                    .fromResource(R.drawable.ic_launcher)));
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) 
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_map, menu);
        return true;
    }
}

Vielen Dank!

20
user1832478

Sie haben einige Erlaubnisprobleme mit Ihrem Manifest. Zuerst müssen Sie im Folgenden den Paketnamen durch Ihr Paket ersetzen. Außerdem müssen Sie als uses-permission

 <permission
        Android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
        Android:protectionLevel="signature" />

pro Paketname sollte - sein

<permission
          Android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"
          Android:protectionLevel="signature"/>
<uses-permission Android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"/>

Schließlich scheinen Sie die folgenden Berechtigungen aus dem Festlegen von Berechtigungen des Abschnitts Erste Schritte - zu vermissen. 

<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission Android:name="com.google.Android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission Android:name="Android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION"/>
26
iagreen

Für mich stellte sich heraus, dass ich den Google Maps Android API v2 nicht aktiviert habe. Wir haben ein anderes Google Maps-API verwendet, von dem ich angenommen hatte, dass es dasselbe ist. 

8
martn_st

wenn es nicht funktioniert hat, folgen Sie diesem 

Das Problem mit dem leeren Bildschirm wurde auf Karten gelöst: Hallo, ich habe diesen leeren Bildschirm schon sehr lange durchgemacht und alle Lösungen ausprobiert, die man sich vorstellen kann. Jetzt wurde es gelöst und die Schritte waren:

1-Gehen Sie alle Schritte von dieses Tutorial sorgfältig durch.

2-Wenn der leere Bildschirm immer noch derselbe ist, löschen Sie die Debug-Schlüsselspeicherdatei, die sich in C:\Users\youUser.Android\debug.keystore <befindet - löschen Sie diese Datei

3-Auf eClips IDE erstellen Sie Ihre App neu, damit diese Datei automatisch neu erstellt wird 4-On-Eclips gehen Sie zu Window -> Preferences -> Android -> Build .__ generierte SHA1 und befolge dann die normalen Schritte zur Generierung des Schlüssels . 5-Run auf deinem realen Gerät, und ich hoffe, du siehst deine Karte :)

1
Ala'a Karss

Sie müssen Ihre App im Amulator mit der folgenden Konfiguration ausführen ... 1) Google API (x86-Systemabbild) 2) Aktivieren Sie das Kontrollkästchen "Host-GPU verwenden".

1

Ich musste den korrekten Fingerabdruck des SHA-1-Zertifikats meiner Google Developer Console hinzufügen.

  1. Zeigt den aktuellen Fingerabdruck an: keytool -list -keystore ~/.Android/debug.keystore

  2. Kopieren Sie den Fingerabdruck (z. B. 48: 6F: 55: B7: C5: E4: 54: E1: 29: D5: E1: E1: E2: A8)

  3. Fügen Sie es Ihren Anmeldeinformationen für diese bestimmte Anwendung in Google Developer Console hinzu.

1
whirlwin

Ich habe ein ähnliches Problem mit der Karte. Nachdem ich alle lib- und key-Probleme behoben hatte, sah ich gerade einen weißen Bildschirm mit der Aufschrift "Google". Das Problem war, dass ich den MapFragment in einen ScrollView steckte. Nach dem Entfernen von ScrollView funktioniert alles einwandfrei. Ich kann die Karte sehen.

1
BHuelse

In meinem Fall war es eine vorhandene App, die ich von GitHub geklont habe und den API-Schlüssel nicht geändert habe. Was für mich funktioniert hat, ist die Aktivierung des SHA-1 meines Signaturzertifikats. Befolgen Sie diese Kurzanleitung , um einen SHA-1-Fingerabdruck zu erhalten.

Dann ließ ich den Hauptentwickler meinen SHA-1-Fingerabdruck zu den autorisierten Paketen für seinen relevanten API-Schlüssel hinzufügen here . Dann habe ich den Build auf dieselbe Weise noch einmal gemacht und es hat funktioniert.

0
ErnestScribbler

Setzen Sie die benutzerdefinierte Keyote auf die gleiche als Standard (Eclipse). Und registrieren Sie einen API-Schlüssel in der Google-Konsole, wie in der Dokumentation angegeben.

0
patriot10

meine Antwort in einem anderen Post ist das, was eigentlich für mich funktioniert, ich füge das App Signaturzertifikat sha-1 ein

0
Andres Felipe

Android Studio: Stellen Sie sicher, dass Sie Ihren Schlüssel in die richtige Hierarchie stellen

 enter image description here

0
itzhar

Die meisten Leute vergessen, die Google Maps Android API V2 in der Entwicklerkonsole zu aktivieren , ich habe sie aktiviert und voila, meine Karte erschien. 

0
Oladipo Olasemo