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

Android Discussion :

Application qui plante lors de l'ouverture de l'Intent


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Novice
    Inscrit en
    Mars 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Mars 2014
    Messages : 65
    Points : 47
    Points
    47
    Par défaut Application qui plante lors de l'ouverture de l'Intent
    Bonjour,

    Je suis un peu débutant en Java Android, donc c'est normal si je comprend pas tout ^^''

    J'ai un problème lorsque j'essaye d'aller sur ma nouvelle activité, celle-ci crash

    Le log:
    Nom : fatal error.png
Affichages : 142
Taille : 41,5 Ko

    Voici ma class:
    Code java : 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
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
     
    public class Consultation extends ActionBarActivity implements OnClickListener
    {
    	private EditText immat, ata, num;
    	private Button btRechercher, btAnnuler;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_consultation);
     
            //liaison des objets graphiques et de prog
            this.immat = (EditText) findViewById(R.id.idtxtImmat);
            this.ata = (EditText) findViewById(R.id.idtxtAta);
            this.num = (EditText) findViewById(R.id.idtxtNum);
            this.btAnnuler = (Button) findViewById(R.id.idAnnuler);
            this.btRechercher =(Button) findViewById(R.id.idRechercher);
     
            //rendre les boutons cliquables
            this.btAnnuler.setOnClickListener(this);
            this.btRechercher.setOnClickListener(this);
     
        }
     
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.consultation, menu);
            return true;
        }
     
     
    	@Override
    	public void onClick(View v) 
    	{
    		switch (v.getId())
    		{
    		case R.id.idAnnuler:
    			this.immat.setText("");
    			this.ata.setText("");
    			this.num.setText("");
    			break;
    		case R.id.idRechercher:
    			final String immat = this.immat.getText().toString();
    			final String ata = this.ata.getText().toString();
    			final String num = this.num.getText().toString();
    			final Consultation cons = this;
    			final Intent unIntent = new Intent(this, ConsultationDoc.class);
    			unIntent.putExtra("immat", immat);
    			unIntent.putExtra("ata", ata);
    			unIntent.putExtra("num", num);
     
     
    			Thread thread = new Thread(new Runnable() {
     
    				@Override
    				public void run() {
    					final boolean ok = rechDoc(immat, ata, num);
    					runOnUiThread(new Runnable() {
     
    						@Override
    						public void run() 
    						{
    							if(ok)
    							{
    								Toast.makeText(cons, "Document trouvé.", Toast.LENGTH_LONG).show();
    								startActivity(unIntent);
    							}
    							else
    							{
    								Toast.makeText(cons, "Document non trouvé", Toast.LENGTH_LONG).show();
    							}
    						}
    					});
    				}
    			});
    			//on demarre la tache
    			thread.start();
    			break;
    		}
    	}
     
    	private boolean rechDoc(String immat, String ata, String num)
    	{
    		boolean retour = false;
    		String url = "###lien###"; 
    		//passage des parametres email et mdp en arrayList
    		ArrayList<NameValuePair> mesDonnees = new ArrayList<NameValuePair>();
    		mesDonnees.add(new BasicNameValuePair("immat", immat));
    		mesDonnees.add(new BasicNameValuePair("ata", ata));
    		mesDonnees.add(new BasicNameValuePair("num", num));
    		//ouverture d'une connection cliente http
    			//definition d'un fichier
    		InputStream is = null;
    		String resultat = null;
    		try
    		{
    			HttpClient httpClient = new DefaultHttpClient(new BasicHttpParams());
    			HttpPost httpPost = new HttpPost(url);
    			httpPost.setEntity(new UrlEncodedFormEntity(mesDonnees));
    			HttpResponse httpResponse = httpClient.execute(httpPost);
    			HttpEntity entity = httpResponse.getEntity();
    			is = entity.getContent();
    		}
    		catch(Exception e)
    		{
    			Log.e("HTTP ouverture", "Erreur de connexion a l'url"+url);
    		}
     
    		//lecture du fichier et sa conversion en String
    		try
    		{
    			BufferedReader bf = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
    			StringBuilder sb = new StringBuilder();
    			String ligne = null;;
    			while ((ligne = bf.readLine()) != null)
    			{
    				sb.append(ligne);
    			}
    			is.close();
    			resultat = sb.toString();
    		}
    		catch(Exception e)
    		{
    			Log.e("Parse de fichier impossible", "Erreur du parsing du fichier");
    		}
    		//parse en Json de la chaine de caracteres
    		try
    		{
    			Log.e("resultat", "resulutat = "+resultat);
    			JSONArray ja = new JSONArray(resultat); //parsing resultat en JSON
    			JSONObject jo = ja.getJSONObject(0); //un seul resultat donc pas de for
    			int nb = jo.getInt("nb");
    			if (nb == 1)
    				retour = true;
    		}
    		catch (Exception e)
    		{
    			Log.e("erreur", "Erreur de parsing JSON");
    		}
    		return retour;
    	}
    }

    Mon activité:
    Code xml : 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
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin" >
     
        <EditText
            android:id="@+id/idtxtAta"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="47dp"
            android:layout_marginTop="183dp"
            android:ems="10"
            android:hint="Ata" />
     
        <Button
            android:id="@+id/idRetour"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Retour" />
     
        <Button
            android:id="@+id/idRechercher"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="19dp"
            android:layout_marginTop="26dp"
            android:text="Rechercher" />
     
        <EditText
            android:id="@+id/idtxtNum"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="12dp"
            android:ems="10"
            android:hint="Num" />
     
        <EditText
            android:id="@+id/idtxtImmat"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="17dp"
            android:layout_marginTop="73dp"
            android:ems="10"
            android:hint="Immat" />
     
    </LinearLayout>

    Si je comprends bien l'erreur, celle-ci vient du Thread mais je ne vois pas ce qu'il cloche

    Merci pour votre aide !

  2. #2
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par 6116d Voir le message
    Si je comprends bien l'erreur, celle-ci vient du Thread mais je ne vois pas ce qu'il cloche

    Merci pour votre aide !
    Je ne pense pas que l'erreur vienne du thread, mais plutôt de l'appel de la méthode setOnClickListener() sur une référence d'objet qui est null.
    Essaie d'associer à chaque bouton son propre OnClickListener() à la place d'utiliser le OnClickListener() général.

    Christian,

  3. #3
    Membre du Club
    Homme Profil pro
    Novice
    Inscrit en
    Mars 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Mars 2014
    Messages : 65
    Points : 47
    Points
    47
    Par défaut
    C'est bon j'ai trouvé, effectivement c'était bien un problème sur le setOnClickListener.
    J'avais appelé mon bouton "retour" et non "annuler" comme dans d'autres activités

    Merci de ton aide MasterMbg

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

Discussions similaires

  1. [WD15] Application qui plante uniquement sur un poste
    Par mik3.42 dans le forum WinDev
    Réponses: 3
    Dernier message: 09/04/2010, 09h38
  2. Réponses: 1
    Dernier message: 09/10/2009, 16h11
  3. Thread et application qui plante
    Par Balbuzard dans le forum Général Java
    Réponses: 10
    Dernier message: 29/08/2008, 16h36
  4. Application qui plante à cause des tabs ?
    Par astrolus dans le forum Windows Forms
    Réponses: 1
    Dernier message: 02/05/2008, 22h54
  5. Application qui plante quand lancé par sans débugage
    Par bossun dans le forum Général Dotnet
    Réponses: 9
    Dernier message: 12/07/2007, 12h08

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