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.
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/libproject
:
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:
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:
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à:
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:
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:
9) Maintenant, il va vous demander à quel projet ajouter cette bibliothèque, alors assurez-vous d'avoir sélectionné votre projet maps
:
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
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
}
}
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.
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:
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 ..
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/
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.
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.