Générer Google Map clé pour android - étape par étape

Ce sont les étapes que je suis à générer ma carte clé pour android:

1-) j'exécute cette commande:

keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android

Cette commande aura comme résultat quelque chose comme ceci:

Alias name: androiddebugkey
Creation date: Mar 13, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 51401a0b
Valid from: Wed Mar 13 02:17:47 EDT 2013 until: Fri Mar 06 01:17:47 EST 2043
Certificate fingerprints:
     MD5:  XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
     SHA1: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
     Signature algorithm name: SHA1withRSA
     Version: 3

2-) Après l'obtention de la SHA1, je l'ai copier et ensuite j'ai ouvert ce lien: https://code.google.com/apis/console/

J'ai mis sur cette fonctionnalité:

Générer Google Map clé pour android - étape par étape

3-) Après que je génère une nouvelle clé:

XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX (le SHA1 obtenus ci-dessus) et edu.osu.cse5326.busstopapp est le seul ensemble de mon projet.

Générer Google Map clé pour android - étape par étape

4-) Enfin, je copie la carte de la Clé API générée:

Générer Google Map clé pour android - étape par étape

5-) Et je l'ai coller dans un de mes mises en page:

<com.google.android.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android"
                    android:id="@+id/mapViewBusStopLocation"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:clickable="true"
                    android:apiKey="the_api_key"

                />

6-) je charge la carte à partir de l'Activité correspondante.

7-) C'est mon manifest.xml fichier:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="edu.osu.cse5326.busstopapp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <permission
        android:name="edu.osu.cse5326.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="10" />

    <application
        android:name="edu.osu.cse5326.busstopapp.AppState"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <uses-library android:name="com.google.android.maps" />

        <activity
            android:name="edu.osu.cse5326.busstopapp.LoginActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

      Many other activities
    </application>

</manifest>

LE PROBLÈME est que je ne vois que la zone grise, sans les informations de la carte.

Ce sont l'exception, je suis arriver lorsque vous essayez d'exécuter le projet:

03-13 16:48:28.045: W/System.err(375): IOException processing: 26
03-13 16:48:28.045: W/System.err(375): java.io.IOException: Server returned: 3
03-13 16:48:28.045: W/System.err(375):  at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115)
03-13 16:48:28.045: W/System.err(375):  at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473)
03-13 16:48:28.045: W/System.err(375):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117)
03-13 16:48:28.055: W/System.err(375):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994)
03-13 16:48:28.055: W/System.err(375):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702)
03-13 16:48:28.055: W/System.err(375):  at java.lang.Thread.run(Thread.java:1019)
03-13 16:48:28.365: W/System.err(375): IOException processing: 26
03-13 16:48:28.365: W/System.err(375): java.io.IOException: Server returned: 3
03-13 16:48:28.365: W/System.err(375):  at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115)
03-13 16:48:28.375: W/System.err(375):  at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473)

J'ai lu beaucoup et je pense que c'est un problème avec la Carte Clé de l'API, mais je ne trouve pas ce que je fais de mal.

Choses que j'ai essayé et n'ai pas de travail:

  1. Supprimer le débogage.fichier de clés et de générer une fois de plus.
  2. J'ai essayer de l'exécuter sur un vrai diviser, au lieu de l'émulateur.
  3. De régénérer la carte de la clé api et attendre quelques heures pour voir si ça prend du temps de travail.
  • <permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> <uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/> Avez-vous ajouté que cela se manifeste?
  • Merci @abbath, permettez-moi de modifier ma question à ajouter à ma manifest.xml de l'information.
  • Avez-vous essayé le fragment de la voie (qui est utilisé ici)?
  • Oui @abbath, j'ai essayé ça aussi.....
InformationsquelleAutor Cacho Santa | 2013-03-13