Jak mogę utworzyć aplikację na Androida w Android Studio, która korzysta z Google Maps Api v2?
[1]}miałem sporo problemów w Android Studio próbując stworzyć aplikację z GoogleMap.
Stosowałem się wcześniej do poniższego poradnika z (prawie) bez problemów używających Eclipse jako mojego IDE:
Https://developers.google.com/maps/documentation/android/start
Nigdy wcześniej nie korzystałem z Android Studio i mam problemy z całym paradygmatem projektu / modułu.
Nie udało mi się pomyślnie skonfigurować usług Google Play SDK http://developer.android.com/google/play-services/setup.html
Oto jeden z dziwnych błędów, które dostaję:
Gradle: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':MyMapApp:compileDebug'. > Compilation failed; see the compiler error output for details. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
7 answers
W końcu udało mi się uruchomić projekt GoogleMapsAPIv2 przy użyciu Android Studio.
EDIT: jak wspomniał Xavier, ta metoda będzie działać tylko dla projektów nie opartych na gradle. Część interfejsu użytkownika, która została użyta w tym samouczku, zostanie wykluczona z AndroidStudio. Więc jeśli masz swój własny projekt, który używa systemu Gradle build, musisz ręcznie zmodyfikować build.gradle plik konfiguracyjny od Android Studio UI nie wpływa na to.
EDIT2: z AndroidStudio wersja 0.1.1, część interfejsu odpowiadająca za zależności modułów została wyeliminowana, więc na razie musimy ręcznie aktualizować zależności poprzez build.plik gradle. Interfejs użytkownika do zmiany zależności gradle zostanie wydany w kolejnych wydaniach
EDIT3: dla tych, którzy nadal próbują używać tego podejścia-proszę zauważyć, że jest przestarzałe i nie działa już
Oto co zrobiłem:
1) wziąłem maps
projekt z próbek usług Google Play i skopiowałem to do oddzielnego katalogu. To będzie nasz projekt MapsApiV2, który będziemy próbować uruchomić. Na moim Macu znajdował się w <sdk_location>/extras/google/google_play_services/samples
Umieściłem go na ~/Work/stack/
2) skopiowałem google-play-services_lib
Katalog projektu w to samo miejsce (~/Work/stack
), więc mój katalog roboczy wygląda tak. Btw, projekt lib znajduje się na <sdk_location>/extras/google/google_play_services/libproject
:
3) Teraz otwórzmy Android Studio. Na ekranie powitalnym naciśnij Import Project
i zaimportuj nasz projekt maps
z ~/Work/stack/maps
. Teraz widzimy wiele skarg na nieznane odniesienie do biblioteki GMS:
4) Teraz musimy dodać usługę Google Play jako bibliotekę referencyjną. Idąc do View -> Open Module Settings
5) na karcie Modules
Kliknij przycisk +
i wybierz Import Module
i zaimportuj swoją lib GooglePlayServices. Nie zmieniłem nic w wizards, więc kliknąłem Next
aż do końca:
6) Teraz musisz odwołać się do tej zaimportowanej biblioteki. Otwórz ponownie ten ekran (przejdź do View -> Module Settings
). Upewnij się, że masz swój maps
projekt i Dependency
zaznaczona karta. Kliknij +
, aby dodać zależność i wybierz Library
. Wybierz tam zaimportowaną bibliotekę:
7) teraz widzimy, że nie narzeka na bibliotekę GMS
, ale wciąż narzeka na bibliotekę wsparcia:
8) naprawmy to. Moja biblioteka wsparcia znajduje się pod adresem <sdk location>/extras/android/support/v13/android-support-v13.jar
. Spróbujmy więc dodać go do naszej przestrzeni roboczej. Przejdź do View -> Open Module Settings
i wybierz zakładkę Libraries
. Wybierz +
-> Java
i wybierz wsparcie biblioteka:
9) Teraz zapyta cię, do którego projektu dodać tę lib, więc upewnij się, że wybrałeś swójmaps
projekt:
10) w tym momencie kod powinien skompilować się bez problemów. Po prostu upewnij się, że kierujesz odpowiednią wersję SDK w manifeście.
Baw się dobrze
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-12 19:17:38
Postępowałem zgodnie z tymi samymi instrukcjami, z wyjątkiem tworzenia nowego projektu. W ramach struktury projektu usunąłem aspekt Android-Gradle i byłem w stanie zbudować z powodzeniem. Opcjonalnie można zaktualizować pliki gradle build i dodać aspekt Android-Gradle do biblioteki usług odtwarzania.
Uwaga: zmieniłem nazwę katalogu usług Google Play.
build.gradle
dla Biblioteki usług Google Play.
apply plugin: 'android-library'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
dependencies {
compile files('libs/android-support-v4.jar')
compile files('google-play-services.jar')
}
android {
compileSdkVersion 17
buildToolsVersion '17.0.0'
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aild.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
build.gradle
do aplikacji testowej.
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
compile project(':lib-google-play-services')
compile files('../lib-google-play-services/libs/google-play-services.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 11
targetSdkVersion 16
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-23 12:23:55
Próbowałem i zawiodłem wiele samouczek na ten temat, ale w końcu znaleźć proste rozwiązanie, które wydaje się działać z Android Studio i gradle
Właśnie zainstalowałem Android Studio 0.2.3 na moim Macu i oto kroki, które sprawiły, że oglądałem fragment mapy na świeżym szablonie projektu hello world:
1) Kliknij przycisk Menedżer SDK na pasku narzędzi w Android Studio.
2) w sekcji "Dodatki" Znajdź "usługi Google play" i pobierz je.
3) w Twojej budowie.gradle plik w katalogu src, dodaj tę linię do zależności:
compile 'com.google.android.gms:play-services:3.1.36'
4) Zamów i zainstaluj klucz API zgodnie z tym samouczkiem: https://developers.google.com/maps/documentation/android/start#the_google_maps_api_key
5) Dodaj fragment do układu XML:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.MapFragment"/>
6) Teraz powinieneś być w stanie uruchomić swój projekt na swoim urządzeniu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-07 21:40:42
Oto konfiguracja dla mojego projektu, który używa Google Maps API V2
, w Android Studio 0.2
, z gradle 0.5.+.
również innych modułów, takich jak ActiobarSherlock
, i niestandardowego NumberPicker
są używane, i po prostu zostawiam je na wypadek, gdyby ktoś ich potrzebował.
Struktura projektu:
1) TOP Directory settings.gradle:
include ':SuperModule', ':libraries:actionbarsherlock', ':libraries:numberPicker'
2) TOP Directory build.gradle
task assemble {}
(niektórzy z was mogą napotkać zadanie nie znalezione. dlatego to umieściłeś. Kolejka!)
3) Budowa Supermoduł.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
dependencies {
compile 'com.google.android.gms:play-services:3.1.36'
compile 'com.android.support:gridlayout-v7:13.0.0'
compile project(':libraries:actionbarsherlock')
compile project(':libraries:numberPicker')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
}
Zwróć uwagę na zależności tutaj. Jego actiobarSherlock (ABS) i NumberPicker, używane jako biblioteki Androida. Korzystam również z usług Play (dlatego min sdk musi być > = 8), oraz layout lib (dla elementu spacji) Biblioteka wsparcia nie jest tu uwzględniona, ponieważ jest włączona do biblioteki ABS!
Actionbar Sherlock build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
dependencies {
compile 'com.android.support:support-v4:13.0.0'
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
}
NumberPicker build.gradle nie jest pokazywany, ponieważ ma ten sam logika z innymi..
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-15 20:49:12
Napisałem artykuł i przeszedłem przez tworzenie aplikacji mapowej, używając zarówno interfejsu lokalizacji, jak i interfejsu google map api. To przejdzie przez wiele idiocynkracies, na które wpadłem podczas próby uzyskania aplikacji map i działa, w tym, które SDK do włączenia, jakie biblioteki importować, co ustawić w manifeście Androida i jak zmienić plik gradle. Mam nadzieję, że to pomoże
Http://www.todroid.com/how-to-create-a-google-map-application-using-android-studio/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-05 19:46:59
Miałem podobny problem, ale po prostu nie mógł znaleźć kom.google.android.gms.pakiet map (ciągle powtarzał, że nie istnieje). Było to po tym, jak zaimportowałem wszystko (pozornie) poprawnie, postępując zgodnie z samouczkiem migracji na własnych Dokumentach Google: http://developer.android.com/sdk/installing/migrate.html
W każdym razie, po zaimportowaniu wszystkiego, nadal miałem problem i nie byłem pewien, jak ustawić ścieżkę budowania (lub odpowiednik Nie-eclipse).
Właśnie miałem aby wykonać połowę poniższego samouczka, Usuń bibliotekę google-play-services, która była już wymieniona w oknie ustawień modułu, a następnie dodaj ją ponownie.
Mam nadzieję, że to się komuś przyda.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-16 22:45:30
Ja też miałem podobny problem, rozwiązałem importowanie google_play_services.jar jak Biblioteka zamiast google play usługi projektują jak moduł.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-18 19:24:24