IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Android Discussion :

Socket sous android le client ne se connecte pas au serveur


Sujet :

API standards et tierces Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Socket sous android le client ne se connecte pas au serveur
    Bonjour,

    Voila, je développe une appli Android sur Eclipse et j'ai besoin de communiquer avec un serveur socket, j'arrive à lancer le serveur qui est une simple appli java mais lorsque je lance le client qui lui est une appli Android, celui-ci ne se connecte pas au serveur car j'envoie des messages des deux cotés et aucun n'est affiché, voici mon code, :

    serveurtest.java

    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
    public class serveurtest {
     
    	public static void main(String[] args){
    		Scanner sc = new Scanner(System.in);
    		int b = 0;
    		ServerSocket socketserver;
    		Socket socketduserveur ;
    		BufferedReader in = null ;
    		PrintWriter out;
    		String rep;
    	 try {
     
    	      socketserver = new ServerSocket(2009);	      
    	      InetAddress address = InetAddress.getLocalHost();
    	      String hostIP = address.getHostAddress() ;
    		  String hostName = address.getHostName();
    		  System.out.println( "Le nom de serveur est : " + hostName + "\nIP: " + hostIP);
    		  System.out.println("Le serveur est à l'écoute du port "+socketserver.getLocalPort());
    	      socketduserveur = socketserver.accept(); 
    		  System.out.println("client connecté");
    		  in = new BufferedReader(new InputStreamReader(socketduserveur.getInputStream()));
    		  out = new PrintWriter(socketduserveur.getOutputStream());
     
                      out.println("test");
     
    		  socketduserveur.close();
    	      socketserver.close();
     
    }
    	 catch (Exception e) {
    	      e.printStackTrace();
    	      System.out.println("erreur 1");
    	    }
    }
    }
    client.java

    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
     
    package com.example.client;
     
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;
    import java.util.Scanner;
     
    import android.os.Bundle;
    import android.widget.RadioButton;
    import android.widget.TextView;
    import android.app.Activity;
     
     
     
    public class QCM extends Activity {
     
    	TextView tv;
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
     
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.qcm);
     
    		Socket socket;
    		BufferedReader in;
    		PrintWriter out = null;
    		String b = "";
     
    		try {
     
    			socket = new Socket("10.10.24.119",2009);	//adresse IP du serveur 
    			in = new BufferedReader (new InputStreamReader (socket.getInputStream()));
    			out = new PrintWriter(socket.getOutputStream());
     
     
    			out.println("TEST");
    			b=in.readLine();   
     
    			tv = (TextView)findViewById(R.id.test);
    			tv.setText(b);
     
     
     
    		}catch (UnknownHostException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}	
    	}
    }
    Il n'y a pas écrit "vous êtes connectés" dans la console donc j'imagine que le programme bloque au niveau de " socketduserveur = socketserver.accept(); "

    Merci de votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Salut,

    T'es sur de ton IP ?
    Le port 2009 pourrait-il être bloqué par un firewall ?

  3. #3
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    1. Utilisation des sockets dans le "main" thread (onCreate !) => NetworkOnMainThreadException, c'est interdit... utiliser un service, un thread, ou... encore plus simple une AsyncTask.

    2. 10.10.24.119 est bien l'IP du serveur quand il démarre ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Merci pour vos réponses, le serveur.java affiche l'ip à cette ligne :

    System.out.println( "Le nom de serveur est : " + hostName + "\nIP: " + hostIP);

    et je mets celle qu'il m'affiche dans client.java donc théoriquement c'est la bonne ip.


    1. Utilisation des sockets dans le "main" thread (onCreate !) => NetworkOnMainThreadException, c'est interdit... utiliser un service, un thread, ou... encore plus simple une AsyncTask.
    J'ai créé un thread du coup mais je ne suis pas sur que l'on fait comme ça :

    CreerSocket.java
    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
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;
    import java.util.Scanner;
     
    import android.os.Bundle;
    import android.widget.RadioButton;
    import android.widget.TextView;
    import android.app.Activity;
     
    public class CreerSocket extends Thread{
     
    	TextView tv;
     
     
    	public void run(){
    		Socket socket;
    		BufferedReader in;
    		PrintWriter out = null;
    		String b = "";
     
    		try {
     
    			socket = new Socket("192.168.0.11",2009);	//adresse IP du serveur 
    			in = new BufferedReader (new InputStreamReader (socket.getInputStream()));
    			out = new PrintWriter(socket.getOutputStream());
     
     
    			out.println("TEST");
    			b=in.readLine();   
    			tv = (TextView)findViewById(R.id.test);
    			tv.setText(b);
     
     
    		}catch (UnknownHostException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}	
     
    	}
    }

    j'ai une erreur a la ligne de findViewById : The method findViewById(int) is undefined for the type CreerSocket
    je ne sais pas a quoi cela correspond !

  5. #5
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Oui... tu mélanges l'interface et une classe de thread séparée (j'ai l'impression).

    Quand je disais de passer par AsyncTask, il y avait une raison !

    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
     
    class MonActivity ....
    {
     
     
     
         public void onCreate()
         {
              ...
     
              new ConnectionTask().execute();  // on démarre la tâche
         }
     
     
         // une classe "fille"
         class ConnectionTask extends AsyncTask<Void,Void,String>
         {
     
              public String doInBackground(Void...params)
              {
                   String ret = null;
                   BufferReader in;
                   PrintWriter out;
                   Socket socket;
     
                   try {
                       socket = new Socket("192.168.0.11",2009);	//adresse IP du serveur 
                       in = new BufferedReader (new InputStreamReader (socket.getInputStream()));
                       out = new PrintWriter(socket.getOutputStream());
     
                       out.println("TEST");
                       ret = b.readLine();
                   } catch (Exception ex) {
                       // on utilise Log sous android !
                       Log.e("ConnectionTask","Failure !",ex);
                   } finally {
                       // il faut tout fermer hein !!!
                       if (out != null) out.close();
                       if (in != null) in.close();
                       socket.close();
                   }
                   return ret;
              }
     
              // ici on est à nouveau dans le thread "UI" on a donc le droit de modifier celle-ci
              public void onPostExecute(String result)
              {
                   if (result != null) {
                      TextView tv = (TextView) MonActivity.this.findViewById(R.id.test);
                      tv.setText(result);
                   }
              }
        }
    }
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Merci Nicroman, j'ai corrigé quelques trucs, je n'ai plus d'erreur dans le code mais le client ne veut toujours pas se connecter, j'ai ouvert le port 2009 mais ce n'est pas ça le problème car le programme marchait très bien avant que je n'essaye de l'exporter sous android.

    j'ai modifié principalement la méthode doInBackground
    Mon code est le suivant :

    main.java
    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
    public class main extends Activity {
     
     
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
     
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.qcm);
     
    		new ConnectionTask().execute(); 
    	}
     
    	// ici on est à nouveau dans le thread "UI" on a donc le droit de modifier celle-ci
    	public void onPostExecute(String result)
    	{
    		if (result != null) {
    			TextView tv = (TextView) main.this.findViewById(R.id.test);
    			tv.setText(result);
    		}
    	}
     
    }
    ConnectionTask.java

    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
    class ConnectionTask extends AsyncTask<Void,Void,String>
    {
     
    	public String doInBackground(Void...params)
    	{
    		String ret = null;
    		BufferedReader in = null;
    		PrintWriter out = null;
    		Socket socket = null;
     
    		try {
    			socket = new Socket("127.0.0.1",2009);	//adresse IP du serveur 
    			in = new BufferedReader (new InputStreamReader (socket.getInputStream()));
    			out = new PrintWriter(socket.getOutputStream());
     
    			out.println("TEST");
    			ret = in.readLine();
    		} catch (Exception ex) {
    			// on utilise Log sous android !
    			Log.e("ConnectionTask","Failure !0",ex);
    		}finally {
    			// il faut tout fermer hein !!!
    			if (out != null) out.close();
    			if (in != null)
    				try {
    					in.close();
    				} catch (Exception ex1) {
    					Log.e("ConnectionTask","Failure !1",ex1);
    				}
    			try {
    				socket.close();
    			} catch (Exception ex2) {
    				Log.e("ConnectionTask","Failure !2",ex2);
    			}
    		}
    		return ret;
    	}
     
     
    }

  7. #7
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    127.0.0.1 c'est le device (donc l'émulateur sur un émulateur), cela ne peut pas être l'@ IP du serveur !
    Si le serveur est sur la machine hote de l'émulateur, sont IP (vu de l'émulateur) est 10.0.2.2 je crois.


    Et il ne faut surtout pas faire une classe à part !
    ConnectionTask a besoin de connaitre l'instance de l'activité pour communiquer les résultat, et *dot* implémenter onPostExecute (qui n'a rien à faire dans l'activité).
    ConnectionTask est bien une classe fille de l'activité !
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Ah d'accord, du coup j'ai mis main et ConnectionTask dans le même fichier et ConnectionTask implémente onPostExecute.

    L'application se lance sur une tablette et s'arrête directement après le lancement... Voici mon code :

    serveurtest.java
    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
     
    public class serveurtest {
     
    	public static void main(String[] args){
    	//	Scanner sc = new Scanner(System.in);
    		int b = 0;
    		ServerSocket socketserver;
    		Socket socketduserveur ;
    		BufferedReader in = null ;
    		PrintWriter out;
    		String rep;
    	 try {
     
    	      socketserver = new ServerSocket(2009);	      
    	      InetAddress address = InetAddress.getLocalHost();
    	      String hostIP = address.getHostAddress() ;
    		  String hostName = address.getHostName();
    		  System.out.println( "Le nom de serveur est : " + hostName + "\nIP: " + hostIP);
    		  System.out.println("Le serveur est à l'écoute du port "+socketserver.getLocalPort());
    	      socketduserveur = socketserver.accept(); 
    		  System.out.println("client connecté");
    		  in = new BufferedReader(new InputStreamReader(socketduserveur.getInputStream()));
    		  out = new PrintWriter(socketduserveur.getOutputStream());
    		  out.println("TESTTTT");
    		  out.flush();
     
     
    }
    	 catch (Exception e) {
    	      e.printStackTrace();
    	      System.out.println("erreur 1");
    	    }
    }
    }

    main.java
    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
     
    public class main extends Activity {
     
     
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
     
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.qcm);
     
    		new ConnectionTask().execute(); 
    	}
     
     
    	class ConnectionTask extends AsyncTask<Void,Void,String>
    	{
     
    		public String doInBackground(Void...params)
    		{
    			String ret = null;
    			BufferedReader in = null;
    			PrintWriter out = null;
    			Socket socket =null ;
     
    			try {
    				socket = new Socket("192.168.0.21",2009);	//adresse IP actuelle du serveur 
    				in = new BufferedReader (new InputStreamReader (socket.getInputStream()));
    				out = new PrintWriter(socket.getOutputStream());
     
    				out.println("TEST");
    				ret = in.readLine();
    			} 
     
    			catch (Exception ex) {
    				// on utilise Log sous android !
    				Log.e("ConnectionTask","Failure !0",ex);
    			}
     
    			finally {
     
    				try {
    					if (out != null) out.close();
    					if (in != null) in.close();
     
    					socket.close();
    				} catch (Exception ex1) {
    					Log.e("ConnectionTask","Failure !1",ex1);
    				}
    			}
    			return ret;
    		}
     
     
     
     
    		// ici on est à nouveau dans le thread "UI" on a donc le droit de modifier celle-ci
    		public void onPostExecute(String result)
    		{
    			if (result != null) {
    				TextView tv = (TextView) main.this.findViewById(R.id.test);
    				tv.setText(result);
    			}
    		}
    	}
    }

  9. #9
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Si l'application s'arrête il doit y avoir un trace dans le LogCat....
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Oui de nombreuses erreurs mais je ne les comprend pas ..



    04-12 13:03:36.149: D/AndroidRuntime(21208): Shutting down VM
    04-12 13:03:36.149: W/dalvikvm(21208): threadid=1: thread exiting with uncaught exception (group=0x418502a0)
    04-12 13:03:36.156: I/Process(21208): Sending signal. PID: 21208 SIG: 9
    04-12 13:03:36.156: E/AndroidRuntime(21208): FATAL EXCEPTION: main
    04-12 13:03:36.156: E/AndroidRuntime(21208): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.testqcm/com.example.testqcm.QCM}: java.lang.ClassNotFoundException: com.example.testqcm.QCM
    04-12 13:03:36.156: E/AndroidRuntime(21208): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2021)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at android.app.ActivityThread.access$600(ActivityThread.java:140)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1228)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at android.os.Handler.dispatchMessage(Handler.java:99)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at android.os.Looper.loop(Looper.java:137)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at android.app.ActivityThread.main(ActivityThread.java:4895)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at java.lang.reflect.Method.invokeNative(Native Method)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at java.lang.reflect.Method.invoke(Method.java:511)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at dalvik.system.NativeStart.main(Native Method)
    04-12 13:03:36.156: E/AndroidRuntime(21208): Caused by: java.lang.ClassNotFoundException: com.example.testqcm.QCM
    04-12 13:03:36.156: E/AndroidRuntime(21208): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at android.app.Instrumentation.newActivity(Instrumentation.java:1068)
    04-12 13:03:36.156: E/AndroidRuntime(21208): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2012)
    04-12 13:03:36.156: E/AndroidRuntime(21208): ... 11 more

  11. #11
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    C'est pourtant assez clair:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Caused by: java.lang.ClassNotFoundException: com.example.testqcm.QCM

    C'est le plus important: il n'y a pas de classe "com.example.testqcm.QCM" dans l'application.

    Et pourquoi Android en a besoin ? c'est indiqué dès le début:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2021)


    performLaunchActivity ?

    Donc à priori, une activité est démarrée par le système, mais le manifest correspond à une class "com.example.testqcm.QCM" qui n'existe pas.
    Voilà tout.

    La suite de la trace montre qu'il s'agit à priori du point d'entrée de l'application ("launcher") quand on clique dans la liste des apps.

    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Ah oui j'avais changé le nom de la classe mais pas dans le manifest !!!

    J'arrive à me connecter au serveur !

    Merci beaucoup Nicroman tu m'as bien aidé !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/02/2015, 18h06
  2. Réponses: 3
    Dernier message: 30/08/2011, 09h24
  3. Développer un client XML-RPC sous Android
    Par randriano dans le forum Android
    Réponses: 10
    Dernier message: 05/08/2011, 08h25
  4. multi-user gaming (MUG) : Client XMPP sous android / serveur local openfire
    Par shessuky dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 31/03/2011, 16h15
  5. Réponses: 2
    Dernier message: 26/01/2008, 12h19

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