2012-12-10 19 views
14

Dobra, oto co zrobiłem używając exampleMapa Awaria API v2 Autoryzacja

  1. ma klucz debugowania poprzez keytool (zadbali jest to klawisz debugowania jest używany przez zaćmienie w Ustawienia -> Android -> Budowanie)
  2. Wygenerowany klucz przez komendę

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

  3. Kopia wklejony sumę SHA1 w konsoli API Google + moje nazwa_pakietu:

    sumy; com.my.package

  4. Włączone Google Map API v2 w ramach tego samego projektu w konsoli API Google

  5. skopiowałeś do aplikacji Manifest w metadanych.

  6. Pobrano za pomocą Menedżera SDK i zaimportowano projekt google-play-services_lib i wymieniono go jako projekt biblioteki. Jak również ActionBarSherlock.

  7. Przed uruchomieniem upewniam się, że usługi GooglePlayServices są dostępne.

Oczywisty:

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

<permission 
    android:name="com.my.package.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature"/> 

<uses-permission android:name="com.my.package.permission.MAPS_RECEIVE"/> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

Zastosowanie:

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

PROGUARD rzeczy dodaje też, ale nie zaciemniać teraz.

DrugstoresMapActivity rozciąga SherlockFragmentActivity

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <fragment 
     android:id="@+id/map_fragment" 
     class="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

</RelativeLayout> 

project.properties

target=android-17 
android.library.reference.1=../google-play-services_lib 
android.library.reference.2=../ActionBarSherlock 

ActionBarSherlock ma android-support-V4 w bibliotekami, a nie główny projekt, czy to się liczy.

StartupActivity zapewnia, że ​​DrugstoresMapActivity zostanie uruchomiona tylko wtedy, gdy usługi dostępne

private void attempt() { 
    int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext()); 

    switch (result) { 
     case ConnectionResult.SUCCESS: 
      startActivity(new Intent(this, DrugstoresMapActivity.class)); 
      finish(); 
      break; 

     default: 
      GooglePlayServicesUtil.getErrorDialog(result, this, REQUEST_DIALOG) 
       .show(); 
      break; 
    } 
} 

dwukrotnie sprawdzane klucze są w porządku. Nie mam pojęcia, czego tu brakowało.

+0

ciekawy, jak się o tym dowiedziałeś? Jestem na blogach tech codziennie i na dokumentach dla programistów Androida codziennie, a zdarzyło mi się tylko dowiedzieć się o tym od próby rozwiązania niemożliwego problemu z mapami android v1 w moim istniejącym kodzie. – CQM

+0

Dowiedz się o czym. Informacje o Wrong service enabled? Jeśli tak, powinieneś poprosić o to w komentarzu do odpowiedzi, a nie o to, by było ono wyraźniejsze.Znalazłem sugestię gdzieś tutaj w StackOverflow po godzinach przeglądania różnych problemów dotyczących tego problemu. –

+0

Nie, skąd dowiedziałeś się o mapach Androida v2, zdaję sobie sprawę, że jestem * tylko * spóźniony o dwa tygodnie, ale myślę, że jest to wielka sprawa – CQM

Odpowiedz

46

Niewłaściwa usługa została włączona. Upewnij się, że "Google Maps Android API v2", a nie "Google Maps API v2" jest włączony i ponownie wygenerować klucz API.

+2

+1 Bingo .. :) Zostałem zablokowany przy pomocy klucza API, usuwania plików kluczy, zmiany nazwy pakietu aplikacji. –

+1

Po włączeniu interfejsu Google Maps Android API v2 nadal nie działał. Więc próbowałem zmienić docelowy sdk w moim manifeście na 17 z 16 i to naprawiło. Zwróć też uwagę, że przełączenie z powrotem na 16 również zadziałało. –

+1

Och, moje słowo - to także był mój problem i wyciągałem włosy. Dziękuję Ci!! – SNyamathi

Powiązane problemy