Chlock Posté(e) 28 février 2014 Share Posté(e) 28 février 2014 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 More sharing options...
elmarco06 Posté(e) 28 février 2014 Share Posté(e) 28 février 2014 si tu es sur eclipse, va dans les proprietes de l'appli. dans l'onglet order and export du build path, vérifie que le jar contenant la classe est bien coché. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Chlock Posté(e) 28 février 2014 Auteur Share Posté(e) 28 février 2014 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 More sharing options...
chpil Posté(e) 3 mars 2014 Share Posté(e) 3 mars 2014 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 More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.