2009-11-27 10 views
16

Jestem nowicjuszem w zakresie opracowywania oprogramowania na Androida i nowości w tej witrynie. Mam nadzieję, że ktoś może mieć jakieś doświadczenie z problemem, który mam.Samouczek "Cześć, MapView" - kafelki mapy nie ładują się.

Śledzę numer Hello, MapView tutorial, aby nauczyć się nie tylko systemu Android, ale także biblioteki Map Google. Starałem się jak najlepiej realizować rzeczy dokładnie tak, jak polecił samouczek. Mój problem polega na tym, że aplikacja ładuje się w moim emulatorze (lub nawet w moim telefonie), ale kafelki mapy nie ładują się.

Wyszukiwanie w Google Znalazłem wpis autorstwa innej osoby w innej witrynie, która ma ten sam problem, ale jego/jej problem polegał na tym, że ważne elementy dodane do pliku AndroidManifest.xml nie były we właściwej kolejności. Sprawdziłem to dwukrotnie w moim, ale wszystko wydaje się mieć rację.

Nie jestem więc pewien, na czym polega problem i miałem nadzieję, że inni już to widzieli. Mogę podać dowolne fragmenty kodu, jeśli mogłoby to pomóc.

Dziękuję.

+0

Upewnij się, że program keytool znajduje się na Twojej ścieżce. ADT nie będzie w stanie podpisać twoich aplikacji, chyba że znajduje się na ścieżce. –

Odpowiedz

20

Płytki nieprzeciążeniowe są zazwyczaj wynikiem nieprawidłowego skonfigurowania klucza API. Obtaining a Maps API key

Aby odpowiedzieć na pytanie, na które odpowiedziałeś d .: Jeśli chcesz, aby działał "po prostu", gdy używasz Eclipse, musisz zdobyć klucz API dla swojego certyfikatu debugowania. There's instructions on the same page jak poprzednio. Pamiętaj, że przed opublikowaniem musisz wrócić do swojego drugiego klucza.

+0

Dzięki fiXedd. Dokładnie tego potrzebowałem. – Onyx

+1

Nie ma problemu ... :) –

+0

@fiXedd Łącza nie wydają się już działać. Czy możesz zaktualizować to samo? – Syn3sthete

3

Nie ładowanie płytek jest prawie zawsze wynikiem użycia niedokładnego klucza API, tak myślę. Sprawdziłeś swój?

Szczegóły: Obtaining a Maps API key

+0

Wiem, że mój klucz API jest poprawny. Ale twoja odpowiedź doprowadziła mnie do zbadania podpisania mojego wniosku. Ręcznie przejąłem proces eksportowania mojego wygenerowanego pliku APK i podpisałem go kluczem, którego użyłem do uzyskania klucza API, zainstalowałem kolejny plik APK i działało. Tak więc, myślę, że moim następnym pytaniem jest, w jaki sposób mogę zautomatyzować ten proces, aby po uruchomieniu przycisku Uruchom w Eclipse, skompilował go, podpisał i zainstalował na emulatorze? – Onyx

0

d. jest prawdopodobnie poprawny. Jednak problemy z Internetem będą również powodować podobne objawy. Upewnij się, że uprawnienie INTERNET jest poprawnie ustawione i że nie ma serwerów proxy/zapór blokujących dostęp do Internetu.

+0

Zobacz mój komentarz pod postem d.. – Onyx

5

Zgaduję, że problem nie polega na tym, że masz nieprawidłowy klucz mapy, ale nie masz odpowiedniego ustawienia magazynu kluczy. Wniosek musi być podpisany przez ten sam magazyn kluczy, który został użyty do wygenerowania klucza mapy. Zauważyłeś, że możesz go uruchomić, gdy sam podpiszę aplikację, ale musisz skonfigurować debugowany magazyn kluczy, aby korzystać z interfejsu API Map w regularnych wersjach Eclipse.

Wszystkie kompilacje Eclipse wymagają debugowania magazynu kluczy; po prostu zwykle tego nie zauważasz, ponieważ narzędzie ADT automatycznie je generuje. Powinieneś albo follow the directions here i utworzyć swój własny debugowany plik kluczy, albo powinieneś wziąć klucz do debugowania, który automatycznie utworzył dla ciebie ADT (wyświetli ci, gdzie go utworzył w Windows> Preferencje> Android> Buduj) i zarejestruj się w innym Klucz API Map Google. Ten klucz będzie działać z Eclipse.

(PS: ten robi to uciążliwe do kompilowania do wydania, jak trzeba przełączyć klucz iz powrotem w zależności od kluczy podpisu.)

+0

Dzięki Daniel. Tak, to był dokładnie mój problem, jak wskazał fiXedd. Mam teraz skonfigurowany klucz debugowania, a kafelki/dane Google nadchodzą. Jeszcze raz dziękuję za odpowiedź i czas. – Onyx

+0

Czy istnieje dobry sposób na poradzenie sobie z tym lub czy za każdym razem trzeba przełączać klawisze przed utworzeniem wersji? – Roaders

1

Sprawdź, czy masz 3g na górnym panelu. Jeśli nie, to nie ma połączenia z Internetem. Czasami muszę kilka razy włączać i wyłączać emulator, aby uzyskać 3g.

0

Kolejnym problemem może być proxy, z którym jesteś związany. Serwer proxy znacznie spowalnia działanie aplikacji, nawet jeśli aplikacja map i przeglądarka internetowa działają poprawnie.

5

Miałem problem z ładowaniem płytek również. Jak wspomniałeś o swoim oryginalnym wpisie, jedną z możliwości jest kolejność elementów w pliku AndroidManifest.xml. W szczególności początkowo miałem linię:

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

po elemencie aplikacji. Po przeniesieniu tej linii przed elementem aplikacji, moje kafelki mapy zaczęły się ponownie ładować.

2

Miałem ten sam problem ... mój błąd był w pliku manifestu, który zawierał wewnątrz aplikacji uprawnienia zezwalające na INTERNET. Po przeniesieniu go (w górę) wszystko działało dobrze.

+0

Ach, dziękuję, wiedziałem, że miałem prawidłowy proces APIkey, ponieważ robiłem to wcześniej, ale bez radości aż do tego rozwiązania. –

0

To stare pytanie, ale tutaj jest jeszcze jedna odpowiedź: jeśli jesteś tak jak ja pochopnie, może przypadkowo skopiuj kod wydruku palca zamiast klucza API ze strony internetowej :)