2017-03-06 3 views
-3

Ich habe "java.lang.NullPointerException: Versuch, virtual aufzurufen Methode 'java.lang.String java.lang.Object.toString()' auf eine Null-Objektreferenz "dieser Fehler, wenn ich versuche, email.i zu senden. Ich hatte mehrere Antworten auf diese Fragen auf dieser Seite gesehen, aber ich bin nicht in der Lage mein error.Please korrigieren tun mir helfen ...... unten ist mein Code SendMailActivityFehler: java.lang.NullPointerException: Versuch, die virtuelle Methode 'java.lang.String java.lang.Object.toString()' für eine Nullobjekt-Referenz aufzurufen

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

import java.util.Arrays; 
import java.util.List; 

public class SendMailActivity extends Activity { 

/** Called when the activity is first created. */ 
String body,number,email; 
final Context context = this; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_send_mail); 
    Bundle b = getIntent().getExtras(); 
    if(b!=null) { 
     number = b.getString("number"); 
     email = b.getString("email"); 
     body = b.getString("otp"); 
    } 
    final Button send = (Button) this.findViewById(R.id.send); 
    send.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      List<String> toEmailList = Arrays.asList(email 
        .split("\\s*,\\s*")); 
      if(email!=null) { 
       new SendMailTask(SendMailActivity.this).execute("[email protected]", 
         "*****", toEmailList, "test", body); 

       //Intent intent2 = new Intent(context, Testotp.class); 
       //intent2.putExtra("otp", body); 
       Intent intent = new Intent(context, Testotp.class); 
       Bundle b = new Bundle(); 

       //Inserts a String value into the mapping of this Bundle 
       b.putString("number", number); 
       b.putString("otp", body); 
       startActivity(intent); 
      } 

     } 
    }); 

} 

}

SendMailTask ​​(hier ist der Fehler)

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.os.AsyncTask; 
import android.util.Log; 

import java.util.List; 

public class SendMailTask extends AsyncTask { 

private ProgressDialog statusDialog; 
private Activity sendMailActivity; 

public SendMailTask(Activity activity) { 
    sendMailActivity = activity; 

} 

protected void onPreExecute() { 
    statusDialog = new ProgressDialog(sendMailActivity); 
    statusDialog.setMessage("Getting ready..."); 
    statusDialog.setIndeterminate(false); 
    statusDialog.setCancelable(false); 
    statusDialog.show(); 
} 

@Override 
protected Object doInBackground(Object... args) { 
    try { 
     Log.i("SendMailTask", "About to instantiate GMail..."); 
     publishProgress("Processing input...."); 
     if(args!=null) { 
      GMail androidEmail = new GMail(args[0].toString(), 
         args[1].toString(), (List) args[2], args[3].toString(), args[4].toString()); 

      publishProgress("Preparing mail message...."); 
      androidEmail.createEmailMessage(); 
      publishProgress("Sending email...."); 
      androidEmail.sendEmail(); 
      publishProgress("Email Sent."); 
      Log.i("SendMailTask", "Mail Sent."); 
     } 
    } catch (Exception e) { 
     publishProgress(e.getMessage()); 
     Log.e("SendMailTask", e.getMessage(), e); 
    } 
    return null; 
} 

@Override 
public void onProgressUpdate(Object... values) { 
    statusDialog.setMessage(values[0].toString()); 

} 

@Override 
public void onPostExecute(Object result) { 
    statusDialog.dismiss(); 
} 
} 

Logcat

Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference 
                         java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference 
                       at com.example.krithihaseshadri.proj.SendMailTask.doInBackground(SendMailTask.java:39) 
                       at android.os.AsyncTask$2.call(AsyncTask.java:295) 
                       at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
                       at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
                       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                       at java.lang.Thread.run(Thread.java:818) 
+0

was ist genau Linie 39? –

+0

Fügen Sie das Passwort Ihrer E-Mail nicht in Ihre Frage ein! Ich habe es für dich entfernt. –

+0

danke ich habe gerade vergessen, es zu entfernen – Krithi

Antwort

0

ist sehr gutes Beispiel E-Mail mit AsyncTask Referenz von https://stackoverflow.com/a/14374639/4862126

genommen senden

Code Snippet:

public void onClick(View v) { 
    final GMailSender sender = new GMailSender("[email protected]", "password"); 
    new AsyncTask<Void, Void, Void>() { 
     @Override public Void doInBackground(Void... arg) { 
      try { 
       sender.sendMail("This is Subject", 
        "This is Body", 
        "[email protected]", 
        "[email protected]"); 
      } catch (Exception e) { 
       Log.e("SendMail", e.getMessage(), e); 
      } 
     } 
    }.execute(); 

} 

wieder glücklich zu helfen, wenn Sie weitere Hilfe benötigen, Annehmen/upvote Antwort, wenn Ihnen geholfen wird es nicht kosten Du Penny !! :)

+0

ya ich werde es versuchen !!! danke – Krithi

+0

Ohk @ Krith, lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen. Und bitte Akzeptieren/Upvote, wenn es geholfen hat. –

+0

Ich habe diesen Code früher ausprobiert und ich habe einen Fehler bekommen, deshalb habe ich den Code benutzt, den ich gepostet habe. – Krithi

0

Bitte aktualisieren Sie Click-Ereigniscode, Sendetaste mit folgenden.

if(email!=null) { 
     List<String> toEmailList = Arrays.asList(email 
        .split("\\s*,\\s*")); 

       new SendMailTask(SendMailActivity.this).execute("[email protected]", 
         "*****", toEmailList, "test", body); 

       //Intent intent2 = new Intent(context, Testotp.class); 
       //intent2.putExtra("otp", body); 
       Intent intent = new Intent(context, Testotp.class); 
       Bundle b = new Bundle(); 

       //Inserts a String value into the mapping of this Bundle 
       b.putString("number", number); 
       b.putString("otp", body); 
       startActivity(intent); 
      } 

Ich habe nichts mehr getan, aber Sie E-Mails checken! = Null, nachdem es verwendet, so wird es kommen. Hier

+0

Ich bin immer noch immer diesen Fehler in SendMailTask ​​Zeile Nr. 39 .... – Krithi

Verwandte Themen