Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Problème d'affichage de la map Google

    3 mai 2013 à 8:49:11

    Bonjour ! ^.^

    Je suis une débutante en programmation Android et j'ai rencontré un problème en voulant tester la géolocalisation. Mon programme se lance normalement mais sur l'émulateur, la carte ne s'affiche pas et j'ai ça à la place :

    Alors j'ai cherché sur différents forum, j'ai suivi des tutoriels, j'ai testé à peu près tout ce qui était conseillé de faire mais sans succès. Donc je vous demande de l'aide. T^T

    Je ne sais pas si le problème vient de mon code ou de la bibliothèque que j'ai inclus. Je sèche complètement. ;___; Est-ce que vous pourriez m'aider s'il vous plait ?

    (Si vous voulez que je vous donne mes codes, faites le moi savoir ! ^^)

    • Partager sur Facebook
    • Partager sur Twitter
      3 mai 2013 à 9:03:50

      Bonjour,

      A mon avis, c'est tout simplement que c'est impossible depuis l'émulateur, tu as essayé sur un device ?

      • Partager sur Facebook
      • Partager sur Twitter
        3 mai 2013 à 9:10:33

        Salut,

        Afin d'utiliser les services de Google comme Google Map, il faut que tu ai un compte GoogleDeveloper afin de récuperer une clé de sécurité qui te permettra d'utiliser Map dans ton application.

        Voici un lien vers un tuto assez bien expliqué :)
        http://www.tutos-android.com/integration-google-map-android

        Bonne chance à toi, car le processus est long même si ça en vaut la peine ^^

        • Partager sur Facebook
        • Partager sur Twitter
        Mon site | Swapiz l'application --> www.swapiz.com
          3 mai 2013 à 9:35:49

          Bonjour ! 

          Pour riventop : Le soucis c'est que je n'ai pas de device. Je suis en stage en fait et c'est la première fois que je fais de l'Android. Je n'ai aucun appareil sous Android à disposition. :( (Comique non ?)

          Pour Azelolol : J'ai suivi ce tutoriel justement pour m'aider, mais comme API V1 n'existe plus, je me suis référée à ce tutoriel là : http://www.tutos-android.com/introduction-a-google-map-v2 Seulement j’obtiens le résultat que je vous ai montré au dessus. D': J'ai même tout repris de zéro plusieurs fois. y_y" J'avoue ne plus savoir quoi faire. ;__;

          Merci de vos réponses en tout cas ! ^^

          • Partager sur Facebook
          • Partager sur Twitter
            3 mai 2013 à 10:25:58

            Si tu n'es pas alérgique à l'anglais ^^
            http://www.vogella.com/articles/AndroidGoogleMaps/article.html

            EDIT : Tu as de la chance -> http://blog.rolandl.fr/1230-android-la-geolocalisation-et-lapi-google-maps-android-v2

            Après, la chose compliquée est de récupérer la clé, mais heureusement, c'est la seule chose qui ne change pas en fonction des versions :D

            Tu fais du développement android sans aucun appareil Oo Et en stage en plus ?! xD Par contre, là où cça va coincer c'est que le compte google developer est payant (25$) A toi de l'expliquer a tes tuteurs ^^"

            -
            Edité par Azelolol 3 mai 2013 à 10:27:01

            • Partager sur Facebook
            • Partager sur Twitter
            Mon site | Swapiz l'application --> www.swapiz.com
              3 mai 2013 à 10:48:03

              Je l'ai fait ce tuto aussi. ;__; J'ai réussi à récupérer la clé, je l'ai mise dans le code, j'ai fait tout ce qui était indiqué (j'ai même pensé à rajouter le projet google play en librairy) mais je n'arrive toujours pas à afficher la carte. uu" 

              Je suis une fille préhistorique moi. '^' Mais je suis censée m'acheter une tablette Android ce mois-ci donc ça devrait aller mieux après. xD

              Le compte google developer est payant ? OO Je pensais qu'il fallait juste avoir un compte google normal moi. '-' #ShameOnMe Je vais voir avec mes tuteurs alors !

              Merci beaucoup ! ^^

              • Partager sur Facebook
              • Partager sur Twitter
                3 mai 2013 à 11:00:11

                Autant pour moi pour le compte google developper, tu n'en as pas besoin ^^" J'ai confondu avec autre chose xD

                C'est bizarre, moi je l'ai suivi ce tuto et ça a fonctionné ^^ Est-ce que tu as des erreurs dans ton logcat ?? Si oui, peux-tu nous les montrer ?? :)

                • Partager sur Facebook
                • Partager sur Twitter
                Mon site | Swapiz l'application --> www.swapiz.com
                  3 mai 2013 à 11:00:53

                  Je maintien que le problème doit venir de l'émulateur, tu peux pas récupérer un téléphone qui traîne juste pour tester ? Moi mon appli de géolocalisation ne marche pas sur l'émulateur et marche sur mon device.

                  Et oui, 25 euros à vie pour le compte dev', étant donné que c'est à vie, tu peux limite t'en prendre un perso si tu compte continuer le développement, c'est ce que j'ai fais personnellement :-)

                  • Partager sur Facebook
                  • Partager sur Twitter
                    3 mai 2013 à 11:04:29

                    Ah j'étais persuadé que lorsque j'avais fais une map sur mon appli ça fonctionnait sur émulateur, mais plusieurs messages sur des frums confirme les propos de riventop, autant pour moi ^^"

                    Mais certains y arrivent quand même, bien que ce soit un peu (beaucoup) de la bidouille xD
                    http://stackoverflow.com/questions/14040185/running-google-maps-v2-on-android-emulator

                    avec la solution
                    http://stackoverflow.com/questions/13691943/this-app-wont-run-unless-you-update-google-play-services-via-bazaar/13869332#13869332

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Mon site | Swapiz l'application --> www.swapiz.com
                      3 mai 2013 à 12:14:32

                      J'avais essayé de bidouiller aussi mais ça a pas marché non plus. '^'

                      Dernière option : Tester sur un appareil Android ! Je vais voir si je peux m'en procurer un rapidement et si le problème persiste et que je ne trouve toujours pas de solution, je reviendrai vous demander de l'aide. ^^

                      En tout cas, merci beaucoup pour vos réponses ! :D

                      • Partager sur Facebook
                      • Partager sur Twitter
                        10 mai 2013 à 11:08:17

                        Afficher une MapView sur emulateur fonctionne. Je l'ai fais un bon nombre de fois.

                        DE plus avec Eclipse on a la possibilite de changer la localisation grace a Emulator Control, ou via la console ADB. Mais pour cela il faut etre branche USB avec mode debuggage.

                        Il existe plein de code source sur le net. Voici un lien http://www.chupamobile.com/tutorial/details/53

                        • Partager sur Facebook
                        • Partager sur Twitter
                          15 mai 2013 à 10:35:50

                          Bonjour ! ^^

                          Bon, alors j'ai testé mon code sur la tablette que je viens d'acheter, et ça ne marche toujours pas. J'ai refait encore des tutos en cherchant un peu partout et j'ai modifié le code de mon activité. Sauf que maintenant, lorsque que je lance mon programme, je me retrouve avec un NullPointerException. ;__; J'ai mis un breakpoint au niveau de l'initialisation de ma map et il s'avère que mon getMap() renvoit null. '^'

                          J'ai cherché un peu partout mais je n'arrive toujours pas à trouver le soucis avec mon code. D': Alors je vous (re)demande de l'aide. ;__;

                          Voici le code de mon activité :

                          public class MapActivity extends FragmentActivity {
                          	private GoogleMap gmap;
                          
                          	@Override
                          	protected void onCreate(Bundle savedInstanceState) {
                          		super.onCreate(savedInstanceState);
                          		setContentView(R.layout.activity_map);
                          		
                          		gmap = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
                          		
                          		gmap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
                          		gmap.setMyLocationEnabled(true);
                          		gmap.getUiSettings().setCompassEnabled(true);
                          		Log.e("Maps", "------EOC------");
                          		
                          	}
                          }

                          Je ne sais pas si vous voulez aussi voir le code de mon fichier XML et celui de mon manifeste. Si oui, dites le moi. ^^

                          Merci d'avance ! 

                          • Partager sur Facebook
                          • Partager sur Twitter
                            15 mai 2013 à 10:43:25

                            Je veux bien le code de ton XML et Manifest :)

                            sinon essaye ceci  (à condition que dans ton layout c'est un supportMap) :

                            FragmentManager myFragmentManager = getSupportFragmentManager();
                            SupportMapFragment mySupportMapFragment = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
                            
                            // On recupere la Map
                            gmap= mySupportMapFragment.getMap();



                            -
                            Edité par cleandroid22kh 15 mai 2013 à 10:44:55

                            • Partager sur Facebook
                            • Partager sur Twitter
                              15 mai 2013 à 10:52:06

                              Je viens d'essayer et j'ai toujours une NullPointerException. ;___;

                              Voici le code de mon layout :

                              <?xml version="1.0" encoding="utf-8"?>
                              <fragment xmlns:android="http://schemas.android.com/apk/res/android"
                                  android:id="@+id/map"
                                  class="com.google.android.gms.maps.SupportMapFragment"
                                  android:layout_width="match_parent"
                                  android:layout_height="match_parent" />

                              Et celui de mon manifeste :

                              <?xml version="1.0" encoding="utf-8"?>
                              <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                                  package="com.example.mapgoogle"
                                  android:versionCode="1"
                                  android:versionName="1.0" >
                              
                                  <uses-sdk
                                      android:minSdkVersion="11"
                                      android:targetSdkVersion="17" />
                                  
                                  <permission
                                      android:name="com.example.mapgoogle.permission.MAPS_RECEIVE"
                                      android:protectionLevel="signature" />
                                  
                                  <uses-permission android:name="com.example.mapgoogle.permission.MAPS_RECEIVE" />
                                  
                                  <uses-permission android:name="android.permission.INTERNET" />
                                  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
                                  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
                                  <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
                                  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
                                  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
                                  
                                  <uses-feature
                                      android:glEsVersion="0x00020000"
                                      android:required="true" />
                              
                                  <application
                                      android:allowBackup="true"
                                      android:icon="@drawable/ic_launcher"
                                      android:label="@string/app_name"
                                      android:theme="@style/AppTheme" >
                                      <uses-library android:name="com.google.android.maps"/>
                                      
                                      <meta-data
                                          android:name="com.google.android.maps.v2.API_KEY"
                                          android:value="AI..." />
                                      
                                      <activity
                                          android:name="com.example.mapgoogle.MapActivity"
                                          android:label="@string/app_name" >
                                          <intent-filter>
                                              <action android:name="android.intent.action.MAIN" />
                              
                                              <category android:name="android.intent.category.LAUNCHER" />
                                          </intent-filter>
                                      </activity>
                                  </application>
                              
                              </manifest>

                              En espérant que ça pourra t'aider à voir plus clair dans mon code. ^^


                              • Partager sur Facebook
                              • Partager sur Twitter
                                15 mai 2013 à 11:05:32

                                <uses-library android:name="com.google.android.maps"/>


                                 mise à part cette ligne que je ne comprends pas pourquoi elle y est x).

                                Sinon je ne vois pas...

                                Tu es sûr que ça vient de 

                                getMap();


                                ? essaye de dé commenté toute les lignes mise à part le type de la map et la récupération de la map...

                                Peut-être qu'un expérimenté sera te trouver une réponse.

                                -
                                Edité par cleandroid22kh 15 mai 2013 à 11:06:42

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  15 mai 2013 à 11:10:46

                                  Ah si j'ai mis mon fragment dans un relativeLayout mais je ne pense pas que ça change quelquechose
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    15 mai 2013 à 11:12:55

                                    Ok ! x)

                                    Tu veux dire, juste garder cette ligne 

                                    gmap = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();

                                    et mettre toutes les autres en commentaires pour voir si ça plante encore ? 'o' (Je suis pas sûre d'avoir bien compris. x) )

                                    J'avais essayé mais ça n'avait rien changé. ;__;

                                    -
                                    Edité par dididou1993 15 mai 2013 à 11:13:54

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      15 mai 2013 à 11:24:02

                                      Je disais de faire comme ça :

                                      public class MapActivity extends FragmentActivity {
                                          private GoogleMap gmap;
                                       
                                          @Override
                                          protected void onCreate(Bundle savedInstanceState) {
                                              super.onCreate(savedInstanceState);
                                              setContentView(R.layout.activity_map);
                                               FragmentManager myFragmentManager = getSupportFragmentManager();
                                      SupportMapFragment mySupportMapFragment = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
                                       
                                      // On recupere la Map
                                      gmap= mySupportMapFragment.getMap();
                                               
                                      gmap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
                                               
                                          }
                                      }



                                      Dans ton layout : activity_map :

                                      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                          xmlns:tools="http://schemas.android.com/tools"
                                          android:layout_width="match_parent"
                                          android:layout_height="match_parent"
                                          android:orientation="vertical"
                                          tools:context=".MapActivity" >
                                       
                                          <fragment xmlns:android="http://schemas.android.com/apk/res/android"
                                              android:id="@+id/map"
                                              android:layout_width="match_parent"
                                              android:layout_height="match_parent"
                                              class="com.google.android.gms.maps.SupportMapFragment" />
                                       
                                      </RelativeLayout>

                                      Essaye d'enlever ta ligne uses-library aussi.

                                      Sinon peux-tu me donner la procédure pour générer ta clé API ?

                                      Je t'invite à consulter ceci et à le faire :

                                      http://android-er.blogspot.fr/2012/12/displaying-sha1-certificate-fingerprint.html


                                      -
                                      Edité par cleandroid22kh 15 mai 2013 à 11:25:27

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        15 mai 2013 à 11:31:17

                                        Même comme ça, ça marche pas. ;___;

                                        Je vais aller générer une nouvelle clé API. ^^ Peut-être que j'ai un souci à ce niveau là en fait. '.'

                                        Merci pour le lien (et aussi pour ton aide) ! ^^

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          15 mai 2013 à 11:41:06

                                          dac sinon montre le logcat et ton erreur ^^

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            15 mai 2013 à 11:58:52

                                            Ok, mon programme ne marche toujours pas. *prépare sa corde* xx

                                            J'ai suivi le tuto du lien que tu m'as passé et j'ai généré une nouvelle clé API mais ça ne marche toujours pas. '^' *ne sait plus quoi faire*

                                            Dans mon logcat j'ai que des messages de debug et de warning, tu le veux quand même ? 'o' (Par contre je sais pas comment on fait. xD *boulet*)

                                            Et en erreur, j'ai seulement ça. ---> java.lang.NullPointerException

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              15 mai 2013 à 12:27:03

                                              si tu as pleins de warning si c'est google play service c'est soit tu ne l'as pas référencé dans ton projet soit tu n'as pas installé le service sur ta tablette :D

                                              Pour le  log si tu es sur Eclipse tu fais CTRL + A (dans le logcat) et tu as un icone d'enregistrement au-dessus tu l'enregistre en fichier .txt et tu copies colle ici x)

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                15 mai 2013 à 13:46:56

                                                Normalement la bibliothèque Google Play est bien installée. 'o'

                                                Et mon logcat ressemble à ça. ^^

                                                05-15 09:48:18.089: I/dalvikvm(966): Debugger is active
                                                05-15 09:48:18.119: I/System.out(966): Debugger has connected
                                                05-15 09:48:18.119: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:18.329: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:18.530: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:18.739: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:18.939: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:19.139: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:19.339: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:19.549: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:19.749: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:19.949: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:20.162: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:20.359: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:20.559: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:20.769: I/System.out(966): waiting for debugger to settle...
                                                05-15 09:48:20.969: I/System.out(966): debugger has settled (1421)
                                                05-15 09:48:22.099: W/GooglePlayServicesUtil(966): Google Play services out of date.  Requires 3027100 but found 2012110
                                                05-15 09:48:22.149: W/GooglePlayServicesUtil(966): Google Play services out of date.  Requires 3027100 but found 2012110
                                                05-15 09:48:22.199: W/GooglePlayServicesUtil(966): Google Play services out of date.  Requires 3027100 but found 2012110
                                                05-15 09:48:22.249: W/GooglePlayServicesUtil(966): Google Play services out of date.  Requires 3027100 but found 2012110
                                                05-15 09:48:22.289: W/GooglePlayServicesUtil(966): Google Play services out of date.  Requires 3027100 but found 2012110
                                                05-15 09:48:22.499: W/GooglePlayServicesUtil(966): Google Play services out of date.  Requires 3027100 but found 2012110



                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  15 mai 2013 à 13:55:12

                                                  Tu as quel version de Google Play Service ? Tu as téléchargé la dernière version sur le SDK ? (capture d'écran si possible) :p après ça je n'ai pas d'idée donc bon... j'essaye d'aider :D
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    15 mai 2013 à 14:01:54

                                                    J'ai cette version là de Google play. 'o'

                                                    Et c'est très gentil de ta part de m'aider ! ^^

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      15 mai 2013 à 14:18:42

                                                      Hmmmm si tu avais bien la dernière version pour ton projet. Ok.

                                                      Est-ce que sur ta tablette tu as activité les données de localisation ?

                                                      Est-ce que sur ta tablette tu as accès à internet ?

                                                      Après ça j'essayerais de chercher en profondeur ton erreur :D

                                                      Car si ton code fonctionne chez moi.

                                                      C'est soit ta clé API ou ton projet mal configuré (niveau de la librairie) ou  ton appareil qui n'est pas configuré pour ^^

                                                      -
                                                      Edité par cleandroid22kh 15 mai 2013 à 14:19:02

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        15 mai 2013 à 14:20:45

                                                        après ta librairie est bien à côté de ton projet ? Il existe dans ton espace de travail ? Sur le même disque dur ? :x test ça aussi x)
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          15 mai 2013 à 14:43:43

                                                          Tout est sur le même disque dur et pour mettre la lib dans mon projet, je l'ai importée en tant que projet et je l'ai mise dans mon rpojet en tant de bibliothèque. 'o'

                                                          Je viens de ré-exécuter exactement le même code et maintenant j'ai une erreur dans le logcat. D:

                                                          05-15 12:42:42.958: E/Trace(3183): error opening trace file: No such file or directory (2)
                                                          05-15 12:42:43.078: W/ActivityThread(3183): Application com.example.mapgoogle is waiting for the debugger on port 8100...
                                                          05-15 12:42:43.148: I/System.out(3183): Sending WAIT chunk
                                                          05-15 12:42:43.188: I/dalvikvm(3183): Debugger is active
                                                          05-15 12:42:43.348: I/System.out(3183): Debugger has connected
                                                          05-15 12:42:43.368: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:43.578: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:43.778: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:43.998: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:44.199: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:44.398: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:44.608: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:44.809: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:45.008: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:45.209: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:45.418: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:45.618: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:45.832: I/System.out(3183): waiting for debugger to settle...
                                                          05-15 12:42:46.038: I/System.out(3183): debugger has settled (1471)
                                                          05-15 12:42:47.058: W/GooglePlayServicesUtil(3183): Google Play services out of date.  Requires 3027100 but found 2012110
                                                          05-15 12:42:47.118: W/GooglePlayServicesUtil(3183): Google Play services out of date.  Requires 3027100 but found 2012110
                                                          05-15 12:42:47.168: W/GooglePlayServicesUtil(3183): Google Play services out of date.  Requires 3027100 but found 2012110
                                                          05-15 12:42:47.219: W/GooglePlayServicesUtil(3183): Google Play services out of date.  Requires 3027100 but found 2012110
                                                          05-15 12:42:47.328: W/GooglePlayServicesUtil(3183): Google Play services out of date.  Requires 3027100 but found 2012110
                                                          05-15 12:42:47.559: W/GooglePlayServicesUtil(3183): Google Play services out of date.  Requires 3027100 but found 2012110
                                                          



                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            15 mai 2013 à 14:46:10

                                                            Oo au niveau de ta tablette tu as changé quelque chose ?
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              15 mai 2013 à 14:50:12

                                                              Non, je teste sur l'émulateur là en fait. xx Et j'ai rien changé. D':
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              [Android] Problème d'affichage de la map Google

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown