1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : septembre 2012
    Messages : 76
    Points : 64
    Points
    64

    Par défaut Null Pointer exception

    Bonjour à tous!
    Je cherche à enregistrer des editext et image dans sqlite ,dés que je clique sur le bouton Enregistrer l'App se bloque

    voici le LOgcat:
    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
    10-11 11:10:40.919 10145-10152/? E/art: Failed sending reply to debugger: Broken pipe
    10-11 11:11:40.880 10145-10145/com.example.sofari.tiffanezni E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                   Process: com.example.sofari.tiffanezni, PID: 10145
                                                                                   java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference
                                                                                       at com.example.sofari.tiffanezni.Register.profileImage(Register.java:146)
                                                                                       at com.example.sofari.tiffanezni.Register.getValues(Register.java:160)
                                                                                       at com.example.sofari.tiffanezni.Register.addContact(Register.java:166)
                                                                                       at com.example.sofari.tiffanezni.Register.access$000(Register.java:43)
                                                                                       at com.example.sofari.tiffanezni.Register$1.onClick(Register.java:74)
                                                                                       at android.view.View.performClick(View.java:5637)
                                                                                       at android.view.View$PerformClick.run(View.java:22429)
                                                                                       at android.os.Handler.handleCallback(Handler.java:751)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                       at android.os.Looper.loop(Looper.java:154)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

    et l'Activity register concerné!
    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
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    public class Register extends AppCompatActivity {
        DatabaseHelper db;
        Button btnchosen,btnajout;
       private  EditText editpseudo,editnom,editphone,editdob,editville,editsexe,editgroupe,editdatedon;
       private  ImageView pic;
        byte[] photo;
        private Contact datamodel;
       // private dataAdapter data;
        Bitmap bp;
        private String fpseudo,fnom,fphone,fdob,fville,fsexe,fgroupe,fdatedon;
     
        @Override
        public void onCreate( Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register);
           db = new DatabaseHelper(this);
     
            editpseudo=(EditText)findViewById(R.id.input_pseudo);
            editnom=(EditText)findViewById(R.id.input_pseudo);
            editphone=(EditText)findViewById(R.id.input_pseudo);
            editdob=(EditText)findViewById(R.id.input_pseudo);
            editville=(EditText)findViewById(R.id.input_pseudo);
            editsexe=(EditText)findViewById(R.id.input_pseudo);
            editgroupe=(EditText)findViewById(R.id.input_pseudo);
            editdatedon=(EditText)findViewById(R.id.input_pseudo);
            pic=(ImageView)findViewById(R.id.imageView4);
            btnajout=(Button)findViewById(R.id.btn_enr);
            btnchosen=(Button)findViewById(R.id.btn_chosen);
             btnajout.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view) {
                     addContact();
                 }
             });
              btnchosen.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View view) {
                      selectImage();
                  }
              });
                 }
     
     
     
        public void selectImage(){
            Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
            photoPickerIntent.setType("image/*");
            startActivityForResult(photoPickerIntent, 2);
        }
     
     
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            switch(requestCode) {
                case 2:
                    if(resultCode == RESULT_OK){
                        Uri choosenImage = data.getData();
     
                        if(choosenImage !=null){
     
                            bp=decodeUri(choosenImage, 400);
                            pic.setImageBitmap(bp);
                        }
                    }
            }
        }
        protected Bitmap decodeUri(Uri selectedImage, int REQUIRED_SIZE) {
     
            try {
     
                // Decode image size
                BitmapFactory.Options o = new BitmapFactory.Options();
                o.inJustDecodeBounds = true;
                BitmapFactory.decodeStream(getContentResolver().openInputStream(selectedImage), null, o);
     
                // The new size we want to scale to
                // final int REQUIRED_SIZE =  size;
     
                // Find the correct scale value. It should be the power of 2.
                int width_tmp = o.outWidth, height_tmp = o.outHeight;
                int scale = 1;
                while (true) {
                    if (width_tmp / 2 < REQUIRED_SIZE
                            || height_tmp / 2 < REQUIRED_SIZE) {
                        break;
                    }
                    width_tmp /= 2;
                    height_tmp /= 2;
                    scale *= 2;
                }
                BitmapFactory.Options o2 = new BitmapFactory.Options();
                o2.inSampleSize = scale;
                return BitmapFactory.decodeStream(getContentResolver().openInputStream(selectedImage), null, o2);
            }
            catch (Exception e){
                e.printStackTrace();
            }
            return null;
        }
        @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
        private byte[] profileImage(Bitmap b){
     
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            b.compress(Bitmap.CompressFormat.JPEG, 0, bos);
            return bos.toByteArray();
     
        }
     
        private void getValues(){
            fpseudo = editpseudo.getText().toString().trim();
                    fnom=editnom.getText().toString().trim();
                    fphone=editphone.getText().toString().trim();
                    fdob=editdob.getText().toString().trim();
                    fville=editville.getText().toString().trim();
                    fsexe=editsexe.getText().toString().trim();
                    fgroupe=editgroupe.getText().toString().trim();
                    fdatedon=editdatedon.getText().toString().trim();
                         photo = profileImage(bp);
        }
     
     
        //Insert data to the database
        private void addContact(){
            getValues();
     
            db.addContacts(new Contact(fpseudo,fnom,fphone,fdob,fville,fsexe,fgroupe,fdatedon,photo));
            Toast.makeText(getApplicationContext(),"Saved successfully", Toast.LENGTH_LONG).show();
     
    }

    quelqu'un peut il m'aider à voir plus clair,merci!

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    octobre 2005
    Messages
    2 589
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2005
    Messages : 2 589
    Points : 4 511
    Points
    4 511

    Par défaut

    Bonjour

    D'après le stacktrace, on a :
    Attempt to invoke virtual method compress on a null object reference
    dans la méthode profileImage(Bitmap b)

    Du coup, il semble bien que b soit null
    Celui-ci est appelé par photo = profileImage(bp)
    et bp est construit dans la méthode onActivityResult

    J'en conclus que onActivityResult ne s'est pas exécuté au moment où profileImage(Bitmap b) a été appelé ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : septembre 2012
    Messages : 76
    Points : 64
    Points
    64

    Par défaut

    Merci Népomucène!
    mais je n'arrive toujours pas store les données ça crash encore,je crais fort que l'appel de la fonction addContacts soit en cause!

    voici le databasehelper
    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
    public class DatabaseHelper extends SQLiteOpenHelper {
        private static  final int DATABASE_VERSION=1;
        public static final String DATABASE_NAME= "Donsand.db";
        public static final String TABLE_NAME= "contacts";
        public static final String KEY_ID="id";
        public static final String KEY_PSEUDO="pseudo";
        public static final String KEY_NOM = "nom";
        public static final String KEY_PHONE ="phone";
        public static final String KEY_DOB ="dob";
        public static final String KEY_SEXE = "sexe";
        public static final String KEY_CITY = "city";
        public static final String KEY_GROUPE = "groupe";
        public static final String KEY_DATEDON =" datedon";
        public static final String KEY_POTO ="poto";
     
     
        public DatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
     
        }
     
        @Override
        public void onCreate(SQLiteDatabase db) {
          String CREATE_TABLE_CONTACTS = "CREATE TABLE " + TABLE_NAME + "("
                  + KEY_ID+"INTEGER PRIMARY KEY,"
                  +KEY_PSEUDO+"TEXT,"
                  +KEY_NOM+"TEXT,"
                  +KEY_PHONE+"VARCHAR,"
                  +KEY_DOB+"VARCHAR,"
                  +KEY_SEXE+"TEXT,"
                  +KEY_CITY+"TEXT,"
                  +KEY_GROUPE+"VARCHAR,"
                  +KEY_DATEDON+"VARCHAR,"
                  +KEY_POTO+"BLOB"+")";
            db.execSQL(CREATE_TABLE_CONTACTS);
        }
     
     
        @Override
        public void onUpgrade(SQLiteDatabase db, int i, int i1) {
            db.execSQL("DROP TABLE IF EXISTS "+ TABLE_NAME);
            onCreate(db);
        }
     
          public void addContacts(Contact contact){
              SQLiteDatabase db = this.getReadableDatabase();
              ContentValues values=new ContentValues();
     
              values.put(KEY_PSEUDO,contact.getPseudo());
              values.put(KEY_NOM,contact.getNom());
              values.put(KEY_PHONE,contact.getPhone());
              values.put(KEY_DOB,contact.getDob());
              values.put(KEY_SEXE,contact.getSexe());
              values.put(KEY_CITY,contact.getCity());
              values.put(KEY_GROUPE,contact.getGroupe());
              values.put(KEY_DATEDON,contact.getDatedon());
              values.put(KEY_POTO,contact.getImage());
     
              db.insert(TABLE_NAME,null,values);
              db.close();

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    octobre 2005
    Messages
    2 589
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2005
    Messages : 2 589
    Points : 4 511
    Points
    4 511

    Par défaut

    Il faut que tu postes la stacktrace d'erreur (comme tu avais fait pour ton 1er message)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : septembre 2012
    Messages : 76
    Points : 64
    Points
    64

    Par défaut

    le voici

    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
    10-11 14:42:48.635 2456-2456/? I/art: Not late-enabling -Xcheck:jni (already on)
    10-11 14:42:48.635 2456-2456/? W/art: Unexpected CPU variant for X86 using defaults: x86
    10-11 14:42:48.838 2456-2456/com.example.sofari.tiffanezni W/System: ClassLoader referenced unknown path: /data/app/com.example.sofari.tiffanezni-1/lib/x86
    10-11 14:42:48.875 2456-2456/com.example.sofari.tiffanezni I/InstantRun: starting instant run server: is main process
    10-11 14:42:49.011 2456-2456/com.example.sofari.tiffanezni W/art: Verification of java.lang.Object com.example.sofari.tiffanezni.Register.access$super(com.example.sofari.tiffanezni.Register, java.lang.String, java.lang.Object[]) took 110.635ms
    10-11 14:42:49.105 2456-2456/com.example.sofari.tiffanezni W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
    10-11 14:42:49.211 2456-2459/com.example.sofari.tiffanezni W/art: Suspending all threads took: 10.020ms
    10-11 14:42:49.278 2456-2456/com.example.sofari.tiffanezni I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead.
    10-11 14:42:49.280 2456-2456/com.example.sofari.tiffanezni I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead.
    10-11 14:42:49.291 2456-2456/com.example.sofari.tiffanezni I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead.
    10-11 14:42:49.295 2456-2456/com.example.sofari.tiffanezni I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead.
    10-11 14:42:49.298 2456-2456/com.example.sofari.tiffanezni I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead.
    10-11 14:42:49.300 2456-2456/com.example.sofari.tiffanezni I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead.
    10-11 14:42:49.302 2456-2456/com.example.sofari.tiffanezni I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead.
    10-11 14:42:49.303 2456-2456/com.example.sofari.tiffanezni I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead.
    10-11 14:42:49.621 2456-2512/com.example.sofari.tiffanezni I/OpenGLRenderer: Initialized EGL, version 1.4
    10-11 14:42:49.621 2456-2512/com.example.sofari.tiffanezni D/OpenGLRenderer: Swap behavior 1
    10-11 14:42:49.690 2456-2456/com.example.sofari.tiffanezni W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    octobre 2005
    Messages
    2 589
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2005
    Messages : 2 589
    Points : 4 511
    Points
    4 511

    Par défaut

    Mes compétence en Android sont nulles, mais j'ai comme l'impression que l'erreur est ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead.
    Le message semble dire que tu n'utilises pas la bonne classe

    Le message est répété 8 fois ; ce qui correspond à ton code qui utilise 8 fois EditText :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            editpseudo=(EditText)findViewById(R.id.input_pseudo);
            editnom=(EditText)findViewById(R.id.input_pseudo);
            editphone=(EditText)findViewById(R.id.input_pseudo);
            editdob=(EditText)findViewById(R.id.input_pseudo);
            editville=(EditText)findViewById(R.id.input_pseudo);
            editsexe=(EditText)findViewById(R.id.input_pseudo);
            editgroupe=(EditText)findViewById(R.id.input_pseudo);
            editdatedon=(EditText)findViewById(R.id.input_pseudo);
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : septembre 2012
    Messages : 76
    Points : 64
    Points
    64

    Par défaut

    oui en fait j'ai r&pété ceci : input_pseudo 8 fois

    après correction voici ce qui s'affiche encore:

    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
    10-11 15:22:14.089 1554-1554/system_process I/InstallerConnection: connecting...
     
                                                                       [ 10-11 15:22:14.090  1278: 1278 I/         ]
                                                                       new connection
    10-11 15:22:14.097 1554-1554/system_process I/InstallerConnection: disconnecting...
     
                                                                       [ 10-11 15:22:14.097  1278: 1278 E/         ]
                                                                       eof
     
     
                                                                       [ 10-11 15:22:14.097  1278: 1278 E/         ]
                                                                       failed to read size
     
     
                                                                       [ 10-11 15:22:14.097  1278: 1278 I/         ]
                                                                       closing connection
    10-11 15:22:14.195 1554-1554/system_process I/InstallerConnection: connecting...
     
                                                                       [ 10-11 15:22:14.195  1278: 1278 I/         ]
                                                                       new connection
    10-11 15:22:24.695 1554-1554/system_process W/IInputConnectionWrapper: reportFullscreenMode on inexistent InputConnection
    10-11 15:22:31.264 2266-2730/com.google.android.gms I/FA-SVC: App measurement is starting up, version: 10298
    10-11 15:22:31.392 2266-2871/com.google.android.gms I/FA-SVC: This instance being marked as an uploader
    10-11 15:22:33.145 1630-1630/com.android.inputmethod.latin E/RichInputConnection: Unable to connect to the editor to retrieve text.
    10-11 15:22:33.145 1630-1630/com.android.inputmethod.latin D/RichInputConnection: Will try to retrieve text later.
    10-11 15:22:41.370 2266-2278/com.google.android.gms W/SQLiteConnectionPool: A SQLiteConnection object for database '/data/user/0/com.google.android.gms/databases/metrics.db' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
    10-11 15:22:41.370 2266-2278/com.google.android.gms W/SQLiteConnectionPool: A SQLiteConnection object for database '/data/user/0/com.google.android.gms/databases/help_responses.db.18' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
    10-11 15:22:41.371 2266-2278/com.google.android.gms W/SQLiteConnectionPool: A SQLiteConnection object for database '/data/user/0/com.google.android.gms/databases/auto_complete_suggestions.db' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
    10-11 15:25:18.649 2571-2571/com.example.sofari.tiffanezni W/IInputConnectionWrapper: finishComposingText on inactive InputConnection
    10-11 15:25:23.335 2571-2571/com.example.sofari.tiffanezni W/IInputConnectionWrapper: finishComposingText on inactive InputConnection
    10-11 15:25:28.426 2571-2571/com.example.sofari.tiffanezni W/IInputConnectionWrapper: finishComposingText on inactive InputConnection
    10-11 15:25:35.500 2571-2571/com.example.sofari.tiffanezni W/IInputConnectionWrapper: finishComposingText on inactive InputConnection
    10-11 15:25:39.844 2571-2571/com.example.sofari.tiffanezni W/IInputConnectionWrapper: finishComposingText on inactive InputConnection
    10-11 15:25:42.408 2571-2571/com.example.sofari.tiffanezni W/IInputConnectionWrapper: finishComposingText on inactive InputConnection
    10-11 15:25:46.586 2571-2571/com.example.sofari.tiffanezni W/IInputConnectionWrapper: finishComposingText on inactive InputConnection
    10-11 15:25:53.941 2571-2571/com.example.sofari.tiffanezni W/IInputConnectionWrapper: reportFullscreenMode on inexistent InputConnection

Discussions similaires

  1. Tomcat 5.5 Null Pointer Exception
    Par nono44200 dans le forum Tomcat
    Réponses: 2
    Dernier message: 07/04/2007, 10h00
  2. Null pointer Exception pour ma Fenetre
    Par LeXo dans le forum AWT/SWING
    Réponses: 2
    Dernier message: 22/01/2007, 09h17
  3. Null Pointer Exception
    Par gloglo dans le forum Langage
    Réponses: 4
    Dernier message: 20/12/2006, 11h32
  4. [Struts] Null Pointer Exception
    Par n@n¤u dans le forum Struts
    Réponses: 1
    Dernier message: 01/08/2006, 13h10
  5. Null Pointer Exception
    Par snouppy dans le forum JBuilder
    Réponses: 3
    Dernier message: 13/06/2006, 21h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo