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.
Author: Chris Stillwell, 2013-05-17

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: Tutaj wpisz opis obrazka

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:

Tutaj wpisz opis obrazka

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:

Tutaj wpisz opis obrazka

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ę:

Tutaj wpisz opis obrazka

7) teraz widzimy, że nie narzeka na bibliotekę GMS, ale wciąż narzeka na bibliotekę wsparcia:

Tutaj wpisz opis obrazka

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:

Tutaj wpisz opis obrazka

9) Teraz zapyta cię, do którego projektu dodać tę lib, więc upewnij się, że wybrałeś swójmaps projekt:

Tutaj wpisz opis obrazka

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

 54
Author: Pavel Dudka,
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
    }
}
 13
Author: Frohnzie,
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.

 9
Author: monopoint,
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:

Tutaj wpisz opis obrazka

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..

 3
Author: Paschalis,
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/

 2
Author: mike gold,
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.

 1
Author: BroFist,
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ł.

 1
Author: encastellano,
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