web-dev-qa-db-fra.com

Comment puis-je créer une application Android Android dans Android Studio qui utilise Google Maps Api v2?

J'ai eu beaucoup de problèmes dans Android Studio essayant de créer une application avec GoogleMap.

J'ai suivi le guide suivant auparavant avec (presque) aucun problème en utilisant Eclipse comme mon IDE:

https://developers.google.com/maps/documentation/Android/start

Je n'ai jamais utilisé Android Studio auparavant et j'ai des difficultés avec l'ensemble du paradigme projet/module.

Je n'ai pas réussi à configurer le SDK des services Google Play http://developer.Android.com/google/play-services/setup.html

Voici l'une des erreurs étranges que je reçois:

 Gradle: 
 ÉCHEC: La construction a échoué avec une exception. 
 
 * Incident: 
 L'exécution a échoué pour la tâche ': MyMapApp: compileDebug' . 
> La compilation a échoué; voir la sortie d'erreur du compilateur pour plus de détails. 
 
 * Essayez: 
 Exécutez avec l'option --stacktrace pour obtenir la trace de la pile. Exécutez avec l'option --info ou --debug pour obtenir plus de sortie de journal. 
40
whoabackoff

Enfin, j'ai réussi à exécuter le projet GoogleMapsAPIv2 en utilisant Android Studio.

EDIT: Comme mentionné par Xavier, cette méthode ne fonctionnera que pour les projets non basés sur Gradle. Et la partie de l'interface utilisateur qui a été utilisée dans ce tutoriel sera exclue d'AndroidStudio. Donc, si vous avez votre propre projet qui utilise Gradle système de build, vous devez modifier manuellement le fichier de configuration build.gradle car Android L'interface utilisateur de Studio ne l'affecte pas.

EDIT2: Avec la version AndroidStudio v0.1.1, la partie d'interface utilisateur responsable des dépendances des modules a été éliminée, donc pour l'instant nous devons mettre à jour les dépendances manuellement via le fichier build.gradle. L'interface utilisateur pour changer les dépendances de gradle sera publiée dans le prochain versions

EDIT3: Pour ceux qui essaient encore d'utiliser cette approche - veuillez noter qu'elle est obsolète et ne fonctionne plus

Voici ce que j'ai fait:

1) J'ai pris le projet maps à partir des exemples des services Google Play et l'ai copié dans le répertoire séparé. Ce sera notre projet MapsApiV2 que nous allons essayer d'exécuter. Sur mon Mac, il se trouvait à <sdk_location>/extras/google/google_play_services/samples Je l'ai placé dans le ~/Work/stack/

2) Copié google-play-services_lib répertoire du projet au même endroit (~/Work/stack), donc mon répertoire de travail ressemble à ceci. Btw, lib project est situé à <sdk_location>/extras/google/google_play_services/libprojectenter image description here

3) Maintenant, ouvrons Android Studio. Sur l'écran d'accueil, appuyez sur Import Project et importez notre projet maps à partir de ~/Work/stack/maps. Maintenant, nous voyons beaucoup de plaintes concernant une référence inconnue à la bibliothèque GMS:

enter image description here

4) Nous devons maintenant ajouter le service Google Play comme bibliothèque de référence. Aller à View -> Open Module Settings

5) Dans l'onglet Modules, cliquez sur + et sélectionnez Import Module et importez votre bibliothèque GooglePlayServices. Je n'ai rien changé dans les assistants, j'ai donc cliqué sur Next jusqu'à la fin:

enter image description here

6) Vous devez maintenant référencer cette bibliothèque importée. Ouvrez à nouveau cet écran (accédez à View -> Module Settings). Assurez-vous que votre projet maps et l'onglet Dependency sont sélectionnés. Cliquez sur + pour ajouter une dépendance et sélectionnez Library. Choisissez votre bibliothèque importée là:

enter image description here

7) Maintenant, nous pouvons voir qu'il ne se plaint pas de la bibliothèque GMS, mais se plaint toujours de la bibliothèque de support:

enter image description here

8) Corrigeons-le. J'ai ma bibliothèque de support située à <sdk location>/extras/Android/support/v13/Android-support-v13.jar. Essayons donc de l'ajouter à notre espace de travail. Aller à View -> Open Module Settings et sélectionnez l'onglet Libraries. Sélectionnez + -> Java et sélectionnez la bibliothèque de support:

enter image description here

9) Maintenant, il va vous demander à quel projet ajouter cette bibliothèque, alors assurez-vous d'avoir sélectionné votre projet maps:

enter image description here

10) À ce stade, le code devrait compiler sans problèmes. Assurez-vous simplement que vous ciblez la bonne version du SDK dans Manifest.

S'amuser

54
Pavel Dudka

Je suivais les mêmes instructions sauf que je créais un nouveau projet. Sous la structure du projet, j'ai supprimé la facette Android-Gradle et j'ai pu construire avec succès. En option, on peut mettre à jour les fichiers de construction Gradle et ajouter la facette Android-Gradle à la bibliothèque des services de lecture.

REMARQUE: j'ai changé le nom du répertoire des services Google Play.

build.gradle pour la bibliothèque des services 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 pour l'application de test.

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
Frohnzie

J'ai essayé et échoué de nombreux tutoriels à ce sujet, mais j'ai finalement trouvé une solution simple qui semble fonctionner avec Android Studio et gradle

Je viens d'installer Android Studio 0.2.3 sur mon mac, et ce sont les étapes qui m'ont fait voir un fragment de cartes sur un nouveau modèle de projet hello world:

1) Cliquez sur le bouton Gestionnaire de SDK dans la barre d'outils dans Android Studio.

2) Sous "Extras", recherchez "Google play services" et téléchargez-le.

3) dans votre fichier build.gradle dans votre répertoire src, ajoutez cette ligne aux dépendances:

compile 'com.google.Android.gms:play-services:3.1.36'

4) commandez et installez votre clé API en suivant ce tutoriel: https://developers.google.com/maps/documentation/Android/start#the_google_maps_api_key

5) Ajoutez le fragment à votre mise en page 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) vous devriez maintenant pouvoir exécuter votre projet sur votre appareil.

9
monopoint

Voici une configuration pour un projet que j'ai fait qui utilise Google Maps API V2, dans Android Studio 0.2, avec gradle 0.5.+. D'autres modules comme ActiobarSherlock et un NumberPicker personnalisé sont également utilisés, et je les laisse juste au cas où quelqu'un en aurait besoin.

Structure du projet:

enter image description here

1) TOP répertoire settings.gradle:

include ':SuperModule', ':libraries:actionbarsherlock', ':libraries:numberPicker'

2) TOP Directory build.gradle

task assemble {}

(certains d'entre vous peuvent être confrontés à la tâche d'assemblage introuvable. c'est pourquoi vous mettez cette ligne!)

) SuperModule build.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
    }
}

Remarquez les dépendances ici. Son actiobarSherlock (ABS) et NumberPicker, utilisés comme Android bibliothèques. J'utilise également Play Services (c'est pourquoi le min sdk doit être> = 8), et la mise en page lib (pour l'élément space) ) La bibliothèque de support n'est PAS incluse ici, car elle est incluse dans la bibliothèque 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 n'est pas affiché car il a la même logique que les autres ..

3
Paschalis

J'ai écrit un article et j'ai exploré la création d'une application de carte à l'aide de l'interface de localisation et de l'API Google Map. Cela passera par la plupart des idiocyncrasies que j'ai rencontrées en essayant de lancer une application de carte, y compris, les SDK à inclure, les bibliothèques à importer, les éléments à définir dans le Android manifeste et comment changer le fichier de notes. J'espère que cela vous aidera

http://www.todroid.com/how-to-create-a-google-map-application-using-Android-studio/

2
mike gold

J'ai également rencontré un problème similaire, j'ai résolu d'importer google_play_services.jar comme Library au lieu du projet google play services Like a Module.

1
encastellano

J'ai eu un problème similaire, mais c'est juste qu'il n'a pas pu trouver le package com.google.Android.gms.maps (il a continué à dire qu'il n'existait pas). C'était après avoir tout importé (apparemment) correctement en suivant le tutoriel de migration sur les propres documents de Google: http://developer.Android.com/sdk/installing/migrate.html

Quoi qu'il en soit, après avoir tout importé, j'ai toujours eu le problème et je ne savais pas comment définir le chemin de génération (ou l'équivalent non Eclipse).

Je viens de suivre la moitié de votre tutoriel ci-dessous, supprimez la bibliothèque google-play-services qui était déjà répertoriée dans la fenêtre des paramètres du module, puis ajoutez-la à nouveau.

J'espère que cela sera utile à quelqu'un d'autre.

1
BroFist