Aller au contenu

Probléme java.lang.NoClassDefFoundError GmailSender


Chlock

Recommended Posts

Bonjour les amis, je suis sur une application d'envoye de mail, et quand je veut executer l'événement onclick sur un bouton pour l'envoie du mail j'obtient les erreurs suivante.

02-27 18:55:44.359: E/AndroidRuntime(15669): FATAL EXCEPTION: main
02-27 18:55:44.359: E/AndroidRuntime(15669): java.lang.NoClassDefFoundError: com.example.mailjpa.GMailSender
02-27 18:55:44.359: E/AndroidRuntime(15669): 	at com.example.mailjpa.MainActivity$1.onClick(MainActivity.java:38)
02-27 18:55:44.359: E/AndroidRuntime(15669): 	at android.view.View.performClick(View.java:2485)
02-27 18:55:44.359: E/AndroidRuntime(15669): 	at android.view.View$PerformClick.run(View.java:9080)
02-27 18:55:44.359: E/AndroidRuntime(15669): 	at android.os.Handler.handleCallback(Handler.java:587)
02-27 18:55:44.359: E/AndroidRuntime(15669): 	at android.os.Handler.dispatchMessage(Handler.java:92)
02-27 18:55:44.359: E/AndroidRuntime(15669): 	at android.os.Looper.loop(Looper.java:130)
02-27 18:55:44.359: E/AndroidRuntime(15669): 	at android.app.ActivityThread.main(ActivityThread.java:3687)
02-27 18:55:44.359: E/AndroidRuntime(15669): 	at java.lang.reflect.Method.invokeNative(Native Method)
02-27 18:55:44.359: E/AndroidRuntime(15669): 	at java.lang.reflect.Method.invoke(Method.java:507)
02-27 18:55:44.359: E/AndroidRuntime(15669): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
02-27 18:55:44.359: E/AndroidRuntime(15669): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)

donc nous savons comme moi que l'erreur et que la classe Gmail Sender n'est pas trouvé, bizarre.
Donc après quelque recherche sur google pas mal de réponse, mais toujours ils disent les BuildPath, donc les retiré, les remettres etc..

Rien de tou ca fonctionne.

Mon projet en zip sur sur le site de developpez.com 

 

http://www.developpez.net/forums/d1419931/java/general-java/java-mobiles/android/probleme-java-lang-noclassdeffounderror-gmailsende/

 

merci les amis

 

 

Lien vers le commentaire
Partager sur d’autres sites

Je suis sur eclipse, j'ai changer mon code pour celui ci-dessous

package com.example.mail;


import javax.mail.PasswordAuthentication;

import java.util.Properties;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import android.os.AsyncTask;
import android.os.Bundle;

import javax.mail.Message;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;



public class MainActivity extends Activity implements OnClickListener {
	 
		Session session=null;
		ProgressDialog pdialog=null;
		Context context=null;
		String userid=null;
		String password=null;
		String from=null;
		String to=null;
		String subject=null;
		String body=null;
		EditText user;
	    EditText pass;
	    EditText sender;
	    EditText recept;
	    EditText sub;
	    EditText message;
	 
		  @Override
		  protected void onCreate(Bundle savedInstanceState) {
		  // TODO Auto-generated method stub
		  super.onCreate(savedInstanceState);
		  setContentView(R.layout.activity_main);
	      context=this;
	        final Button send = (Button) this.findViewById(R.id.send);
	        user = (EditText) this.findViewById(R.id.userid);
	        pass = (EditText) this.findViewById(R.id.password);
	        sender = (EditText) this.findViewById(R.id.from);
	        recept = (EditText) this.findViewById(R.id.to);
	        sub = (EditText) this.findViewById(R.id.subject);
	        message = (EditText) this.findViewById(R.id.body);
	        
	        
	        user.setText("loicgacquere@gmail.com");
	        pass.setText("chanson62");
	        sender.setText("loicgacquere@gmail.com");
	        recept.setText("loicgacquere@gmail.com");
	        sub.setText("loicgacquere@gmail.com");
	        message.setText("hello loic");
	 
		    send.setOnClickListener(this); 
	 
		    
		 
		  }
	 
			@Override
			public void onClick(View v) {
				Log.e("dd","je crée ");
				    userid= user.getText().toString();
			        password = pass.getText().toString();
			        from = sender.getText().toString();
			        to = recept.getText().toString();
			        subject = sub.getText().toString();
			        body = message.getText().toString();
	 
				  Properties props = new Properties();
				  props.put("mail.smtp.host", "smtp.gmail.com");
				  props.put("mail.smtp.socketFactory.port", "465");
				  props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
				  props.put("mail.smtp.auth", "true");
				  props.put("mail.smtp.port", "465");
	 
				  session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
	                    protected PasswordAuthentication getPasswordAuthentication() {
	                    	Log.e("dd","je crée mon WritableWorkbook");
	  return new PasswordAuthentication(userid, password);
	  }
	                    
				  });
				  pdialog = ProgressDialog.show(context, "", "Sending Mail...",true);
				  RetreiveFeedTask task= new RetreiveFeedTask();
				  task.execute();
			}
	 
	 
		  public class RetreiveFeedTask extends AsyncTask<String, Void, String> {
	 
	 
			  protected String doInBackground(String... urls) {
			        try {
			        	Log.e("dd","je suis la ");
			        	
			        	 MimeMessage message = new MimeMessage(session);
			        	 message.setFrom(new InternetAddress(from));
			             message.setSubject(subject);
			             message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
			        	 message.setContent(body, "text/html; charset=utf-8");
			        	 Transport.send(message);
			     
			        } 
			        catch (MessagingException e) {
		        		 e.printStackTrace();
		        		  }
			        catch (Exception e) {
			           e.printStackTrace();
	 
			        }
			        return null;
			    }
	 
			    protected void onPostExecute(String feed) {
			    	pdialog.dismiss();
			    	sender.setText("");
			    	recept.setText("");
			    	sub.setText("");
			    	Toast.makeText(getApplicationContext(), "Message sent", Toast.LENGTH_LONG).show();
	 
			    }
		  }

}

Plus court, maintenant j'ai l'erreur suivante

02-28 17:01:53.309: E/dalvikvm(24745): Could not find class 'javax.activation.DataHandler', referenced from method javax.mail.internet.MimeMessage.getDataHandler

Pourtant je n'utilise pas ce dataHandler

 

merci l'ami

Lien vers le commentaire
Partager sur d’autres sites

Il te manque la classe DataHandler effectivement (du jar activation.jar). Et même si tu ne l'utilises pas, la classe MimeMessage que tu utilises en a besoin, elle

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...