2013-05-14 17 views
7

Próbuję uzyskać mapę google do wyświetlenia. Widzę tło (jasnoszare tło, małe kafelki, logo Google w lewym dolnym rogu), więc wiem, że jestem blisko. Jednak nie wyświetla się aktualna mapa. W LogCat, to ten komunikat powtarzając ciągle:Android: Mapy Google nie wyświetlają się

05-14 13: 28: 17,926: W/System.err (27.458) w android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher $ DispatcherServer.run (DataRequestDispatcher.java:1702)

Używam Google map api 2 z telefonem na uwięzi do testów, które są uruchomione 2.3.4.

Ktoś wie, co może być przyczyną? Dzięki!

> package com.example.maptest; 
> 
> import android.os.Bundle; 
> 
> import com.google.android.maps.MapActivity; import 
> com.google.android.maps.MapController; import 
> com.google.android.maps.MapView; 
> 
> public class MyMapActivity extends MapActivity { private MapView 
> mapView; private MapController mapController; 
> 
> @Override public void onCreate(Bundle savedInstanceState) { 
>  super.onCreate(savedInstanceState); 
>  setContentView(R.layout.map_layout); 
>  mapView = (MapView)findViewById(R.id.map_view); 
>  } 
> 
> @Override protected boolean isRouteDisplayed() { 
>  return false; } 
> 
> } 

<permission android:name="com.example.maptest.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE"/> 
<uses-permission android:name="android.permission.INTERNET" /> 
<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" /> 

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

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

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 

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

    <activity 
     android:name="com.example.maptest.MyMapActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

    <activity 
     android:name=".MainActivity" > 
     </activity> 

    <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="xxxxxxxxxxxxxxxxxxxx"/> 

</application> 

Odpowiedz

11

Problem ten jest zazwyczaj związany z kluczem API map używanych do podpisania manifestu. Spójrz na this post i this one, które opisują ten sam błąd, którego doświadczasz. W obu przypadkach jest to spowodowane tym, że klucz API, którego użyli został utworzony z nieprawidłowym keystore. Musisz upewnić się, że używasz debugowanego magazynu kluczy podczas tworzenia klucza API w konsoli Google API, jeśli zamierzasz testować z Eclipse.

+0

Dzięki. Ponownie użyłem innego klucza API z innego projektu. Wygenerowałem nowy dla tego projektu, który pozbył się błędów w LogCat. Nadal nie ma mapy, choć ... – Alex

3

Zasadniczo miksujesz przestarzałe Android API v1 z nowym API v2.

Najłatwiejszym sposobem migrować jest usunięcie wszystkich v1 powiązany kod i zacząć od zera, po tym linkiem: https://developers.google.com/maps/documentation/android/start

+0

Nie mam wyboru, ponieważ musi działać na 2.3.4 (API 10). v2 działa tylko w API 11, jak rozumiem. Nie? – Alex

+2

Nie. API v2 działa od wersji 2.2 (API 8). Dodatkowo wymaga OpenGL ES 2.0, ale (o ile nie rozwijasz się na rynkach wschodzących), ponad 99% urządzeń to posiada. –

+0

Dzięki. Przeszedłem przez dokumentację, którą sugerujesz wcześniej, ale bez powodzenia. Z tej dokumentacji jest następujący wiersz: "Pamiętaj, że poniższy kod jest przydatny tylko do testowania ustawień w aplikacji kierowanej na Androida API 12 lub nowszy", więc nadal utknąłem. Nadal będę nad tym pracował. – Alex

1

Jeśli masz kilka pakietów w aplikacji beware podczas tworzenia API key należy użyć nazwy pakietu że zawarte w początku pliku android mainfest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    **package="com.xxx.xxx"** 
    android:versionCode="1" 
    android:versionName="1.0" > 
0

dobrze faktycznie żyłem ten problem i to czyni mnie do szału. po tym, jak znalazłem rozwiązanie. bardzo proste:

1- w swoim projekcie, google_maps_api.xml po prostu sprawdź, czy link do strony internetowej odpowiada nazwie twojego pakietu, jeśli twoja nazwa pakietu istnieje i jest poprawna. przejdź na stronę i uzyskać klucz

Aby dostać jeden, ten link, postępuj zgodnie ze wskazówkami i naciśnij przycisk „Utwórz” na koniec:

https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=... 

2- wystarczy utworzyć nowe mapy gooogle projekt aktywności uzyskaj kod SHA-1.

nie zapomni kod SHA-1 jest samo w innym projekcie, ale link do strony internetowej jest uniqu dla każdego programu

-1

miałem ten sam problem. Problem był w moim pliku manifestu. Sprawdź, czy klucz map google jest zapisany w pliku IN STRING.xml, a klucz map google w pliku google_maps_api.xml nie ma takiej samej nazwy.

-1

przejdź do konsoli programowalnej włącz api mapy dla urządzenia, a następnie skopiuj klucz i wklej wartości-> google_maps_api.xml. Działa Użyj klucza Android (auto tworzone przez usługę google), jeśli na urządzenia z systemem Android

+0

Ta odpowiedź została podana przez użytkownika Diya Bhat i została poddana pod głosowanie. Podaj bardzo dobre wyjaśnienie, dlaczego nie zostałbyś poddany pod głosowanie, zmieniając odpowiedź za pomocą istotnych informacji, które są wyjątkowe ... Obecnie są oznaczone jako bardzo niskiej jakości. – ZF007

Powiązane problemy