salut à tous
je suis debutant en android
je n'ai aucun erreur dans mon code mais malgre ça l'application ne se lance pas.
j'ai besoin d'une solution .
merci de m'aider
salut à tous
je suis debutant en android
je n'ai aucun erreur dans mon code mais malgre ça l'application ne se lance pas.
j'ai besoin d'une solution .
merci de m'aider
T'as essayé de tourner 3 fois autour de ta chaise ?
Plus sérieusement, sans code, sans message d'erreur, sans informations sur ton environnement de développement, sur ce que tu veut faire, sans être derrière toi à regarder ton code, c'est très difficile de t'aider.
voila le code
***********PositionsViewMainActivity******
******database*************
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 package com.android.map; import android.app.Activity; import android.os.Bundle; import java.util.List; import com.google.android.maps.MapView; import android.os.Bundle; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.LinearLayout; import com.android.map.database.*; import com.android.map.pojos.PositionMarkersList; import com.android.map.pojos.PositionMarker; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapView; import com.google.android.maps.Overlay; import com.google.android.maps.OverlayItem; //Activité affichant les positions enregistrées sur la carte. public class PositionsViewMainActivity extends MapActivity { /** Called when the activity is first created. */ MapView mapView = null; PositionMarkersList positionMarkersList = null; PositionMarker positionMarker = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Configure la map mapView = (MapView) this.findViewById(R.id.mapView); // Récupère les positions enregistrées // et ajoute les à la carte. // Affiche l'ensemble des marqueurs enregistrés en DB positionMarkersList = new PositionMarkersList(this.getResources().getDrawable(R.drawable.pink), this); List<Overlay> mapOverlays = mapView.getOverlays(); mapOverlays.add(positionMarkersList); // Récupère de la DB les marqueurs enregistrés // et ajoute les à la carte DatabaseHelper dbHelp = new DatabaseHelper(getApplicationContext()); for (PositionMarker positionToAdd : dbHelp.getPositions()) { addPosition(positionToAdd); } // end-for // mapView.invalidate(); }//fin OnCreate private void addPosition(PositionMarker positionToAdd) { // TODO Auto-generated method stub double lat = positionMarker.getLatitude(); double lng = positionMarker.getLongitude(); GeoPoint geoPoint = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6)); OverlayItem overlayitem = new OverlayItem(geoPoint, positionMarker.toString(), null); positionMarkersList.addMarker(overlayitem); } protected boolean isRouteDisplayed() { return false; } }
************positionmarker*********
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 package com.android.map.database; import java.util.ArrayList; import java.util.Calendar; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import com.android.map.pojos.PositionMarker; public class DatabaseHelper extends SQLiteOpenHelper{ public DatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor stub } /** Nom du fichier de la DB **/ private static String DATABASE_NAME = "poslog.db"; /** Version de la DB, utilisé pour les mises à jour **/ private static final int DATABASE_VERSION = 1; /** Référence vers la connection DB **/ private SQLiteDatabase db; /** Nom de la table centralisant les Positions enregistrées **/ private static String TABLE_POSITIONS = "Positions"; private static String COLUMN_LONGITUDE = "longitude"; private static String COLUMN_LATITUDE = "latitude"; private static String CREATE_TABLE_POSITIONS = "create table " + TABLE_POSITIONS + " ( " + COLUMN_LONGITUDE + " FLOAT," + COLUMN_LATITUDE + " FLOAT," + ");"; @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL(CREATE_TABLE_POSITIONS); } /** * Exécuté lorsque le numéro de version change (DATABASE_VERSION). * Supprime l'ancienne table Positions et la remplace par la nouvelle. */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub db.execSQL("DROP TABLE IF EXISTS " + TABLE_POSITIONS); onCreate(db); } public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); db = getWritableDatabase(); } public long insertPosition(PositionMarker positionMarker) { if (null != positionMarker) { ContentValues positionToInsert = new ContentValues(); positionToInsert.put(COLUMN_LONGITUDE, positionMarker.getLongitude()); positionToInsert.put(COLUMN_LATITUDE, positionMarker.getLatitude()); long output = db.insert(TABLE_POSITIONS, null, positionToInsert); db.close(); return output; } else { return 0; } // end-if } /** * Récupère l'ensemble des positions disponibles en DB. */ public ArrayList<PositionMarker> getPositions() { ArrayList<PositionMarker> output = new ArrayList<PositionMarker>(); String[] colonnesARecup = new String[] { COLUMN_LONGITUDE, COLUMN_LATITUDE }; Cursor cursorResults = db.query(false, TABLE_POSITIONS, null, null + " asc", null, null, null, null, null); if (null != cursorResults) { if (cursorResults.moveToFirst()) { do { double longitude = cursorResults.getDouble(cursorResults.getColumnIndex(COLUMN_LONGITUDE)); double latitude = cursorResults.getDouble(cursorResults.getColumnIndex(COLUMN_LATITUDE)); PositionMarker positionToAdd = new PositionMarker(longitude,latitude); output.add(positionToAdd); } while (cursorResults.moveToNext()); } // end-if } // end-if db.close(); return output; } }
********position markerlist***********
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 package com.android.map.pojos; import java.util.Calendar; public class PositionMarker { private double longitude; private double latitude; public PositionMarker(double longitude, double latitude) { // TODO Auto-generated constructor stub this.longitude = longitude; this.latitude = latitude; } /** * Affiche le contenu de la position sous forme de String. */ @Override public String toString() { String output = "\nlongitude = " + longitude + "\nlatitude = " + latitude; return output; } public final double getLongitude() { return longitude; } public final double getLatitude() { return latitude; } }
**********main.xml*********
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 package com.android.map.pojos; import java.util.ArrayList; import android.app.AlertDialog; import android.content.Context; import android.graphics.drawable.Drawable; import com.google.android.maps.ItemizedOverlay; import com.google.android.maps.OverlayItem; public class PositionMarkersList extends ItemizedOverlay{ /** * Contient la liste des marqueurs à afficher. */ private ArrayList<OverlayItem> marqueurs = new ArrayList<OverlayItem>(); /** * Référence vers le contexte d'exécution. */ private Context context; public PositionMarkersList(Drawable defaultMarker, Context context) { super(boundCenterBottom(defaultMarker)); this.context = context; // TODO Auto-generated constructor stub } /** * Ajoute un marqueur à afficher. */ public void addMarker(OverlayItem overlay) { marqueurs.add(overlay); populate(); } @Override protected OverlayItem createItem(int i) { // TODO Auto-generated method stub return marqueurs.get(i); } @Override public int size() { // TODO Auto-generated method stub return marqueurs.size(); } /** * Affiche un dialogue décrivant le marqueur lorsque l'utilisateur clique sur un marqueur. */ @Override protected boolean onTap(int index) { OverlayItem item = marqueurs.get(index); AlertDialog.Builder dialog = new AlertDialog.Builder(context); dialog.setTitle(item.getTitle()); dialog.setMessage(item.getSnippet()); dialog.show(); return true; } }
************manifest**************
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main" android:layout_width="fill_parent" android:layout_height="fill_parent"> <com.google.android.maps.MapView android:id="@+id/mapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true" android:clickable="true" android:apiKey="COMPLETER" /> <LinearLayout android:id="@+id/zoom" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" /> </LinearLayout>
**************string***************
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.map" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <uses-library android:name="com.google.android.maps" /> <activity android:name=".HelloGoogleMapActivity" 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> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> </manifest>
sachant que j'ai changer la clef
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, HelloGoogleMapActivity!</string> <string name="app_name">GoogleMapTuto</string> <string name="mapKey">XXXXXXXXX</string> </resources>
merci
essayer de le compiler ,l'icon de l'application ne s'affiche pas sous l'emulateur !
J'ai déjà eu ce problème. J'espère que c'est le même cas que toi.
Je travaille en utilisant l’éclipse. Tu fais project puis clean.
L'erreur disparaît si c'est le même cas que moi.
j'ai essaye mais pas de resultat
Essais de faire bouton droit sur le projet Android Tools puis Fix Project Properties.
J'ai utilisé ces deux manières si ça marche c'est bon si nn dsl je ne peux pas t'aider.
salut à tous
est ce que si 2 projet existent sous le meme package ont une influence sur l'execution de l'un d'eux.
cette reponse est propose par un ami, car mon application ne se lance pas.
merci de m'aider
Encore une fois, merci de poster l'erreur que vous obtenez à l'exécution de votre application.
Essayer le debugeur oh ca oui.
mais avant essayer d ajouter des overlays items static avant d utiliser une db
bonne chance.
qu on au probleme au juste on ne sais pas au juste si la map elle meme ne s affiche pas, ou si c est juste les overlays.
bonne chance, et plus de precisions,
merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager