Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 异步任务运行时异常_Android_Android Asynctask - Fatal编程技术网

Android 异步任务运行时异常

Android 异步任务运行时异常,android,android-asynctask,Android,Android Asynctask,我正在通过GMail测试一个简单的电子邮件发送者。 代码可以正常工作,现在我正试图将其放入一个AsyncTask中,以便显示加载程序或执行其他操作 这是工作代码 package com.example.mailsend; import java.io.UnsupportedEncodingException; import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException

我正在通过GMail测试一个简单的电子邮件发送者。 代码可以正常工作,现在我正试图将其放入一个AsyncTask中,以便显示加载程序或执行其他操作

这是工作代码

package com.example.mailsend;

import java.io.UnsupportedEncodingException;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import android.os.AsyncTask;
import android.os.Bundle;
import android.os.StrictMode;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ProgressDialog;
import android.view.Menu;
import android.view.View;

public class MailSendMainActivity extends Activity {

String username = "USER";
String password = "PASS";

public void send(View view){
     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 = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
                        protected PasswordAuthentication getPasswordAuthentication() {
      return new PasswordAuthentication(username, password);
      }
      });
      try {

          Message message = new MimeMessage(session);
          message.setFrom(new InternetAddress("Address"));
          message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@hotmail.com"));
          message.setSubject("Subject");
          message.setContent("content", "text/html; charset=utf-8");
          Transport.send(message);

            } catch (MessagingException e) {
                  throw new RuntimeException(e);
                  }

}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mail_send_main);


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.mail_send_main, menu);
    return true;
}



}
现在是我无法确切理解自己在做什么的时候。 我试着四处阅读,但我抓不住,所以这是我最好的尝试(虽然不起作用)

package com.example.mailsend;
导入java.io.UnsupportedEncodingException;
导入java.util.Properties;
导入javax.mail.Message;
导入javax.mail.MessaginException;
导入javax.mail.PasswordAuthentication;
导入javax.mail.Session;
导入javax.mail.Transport;
导入javax.mail.internet.AddressException;
导入javax.mail.internet.InternetAddress;
导入javax.mail.internet.mimessage;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.os.StrictMode;
导入android.annotation.SuppressLint;
导入android.app.Activity;
导入android.app.ProgressDialog;
导入android.view.Menu;
导入android.view.view;
导入android.widget.Toast;
公共类MailSendMainActivity扩展活动{
字符串username=“USER”;
字符串password=“PASS”;
吐司;
敬酒!;
专用会话createSessionObject(){
Properties props=新属性();
put(“mail.smtp.host”、“smtp.gmail.com”);
props.put(“mail.smtp.socketFactory.port”,“465”);
put(“mail.smtp.socketFactory.class”、“javax.net.ssl.SSLSocketFactory”);
props.put(“mail.smtp.auth”,“true”);
props.put(“mail.smtp.port”,“465”);
return Session.getInstance(props,new javax.mail.Authenticator(){
受保护的密码身份验证getPasswordAuthentication(){
返回新密码身份验证(用户名、密码);
}
});
}
私有消息createMessage(字符串电子邮件、字符串主题、字符串消息正文、会话会话)引发MessaginException、UnsupportedEncodingException{
试一试{
Message Message=新的mimessage(会话);
message.setFrom(新的InternetAddress(“地址”));
message.setRecipients(message.RecipientType.TO,InternetAddress.parse(“recipient@hotmail.com"));
message.setSubject(“主题”);
message.setContent(“content”,“text/html;charset=utf-8”);
返回消息;
}捕获(消息异常e){
抛出新的运行时异常(e);
}
}
私有类SendMailTask扩展了AsyncTask{
私有进程对话;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
progressDialog=progressDialog.show(MailSendMainActivity.this,“请稍候”,“正在发送邮件”,true,false);
}
@凌驾
受保护的void onPostExecute(void避免){
super.onPostExecute(避免);
progressDialog.disclose();
}
@凌驾
受保护的Void doInBackground(消息…消息){
试一试{
Transport.send(消息[0]);
}捕获(消息异常e){
e、 printStackTrace();
}
返回null;
}
}
公共作废发送(查看){
新建SendMailTask().execute();
}
@SuppressLint(“新API”)
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u mail\u send\u main);
//如果(android.os.Build.VERSION.SDK_INT>9){
//StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder().permitAll().build();
//StrictMode.setThreadPolicy(策略);
//  }
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.mail\u send\u主菜单);
返回true;
}
}
这是LogCat

09-21 14:05:37.408: E/AndroidRuntime(26861): FATAL EXCEPTION: AsyncTask #1
09-21 14:05:37.408: E/AndroidRuntime(26861): java.lang.RuntimeException: An error occured while executing doInBackground()
09-21 14:05:37.408: E/AndroidRuntime(26861):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.util.concurrent.FutureTask.run(FutureTask.java:239)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.lang.Thread.run(Thread.java:841)
09-21 14:05:37.408: E/AndroidRuntime(26861): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
09-21 14:05:37.408: E/AndroidRuntime(26861):    at com.example.mailsend.MailSendMainActivity$SendMailTask.doInBackground(MailSendMainActivity.java:79)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at com.example.mailsend.MailSendMainActivity$SendMailTask.doInBackground(MailSendMainActivity.java:1)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
09-21 14:05:37.408: E/AndroidRuntime(26861):    ... 4 more
09-21 14:05:38.009: E/WindowManager(26861): Activity com.example.mailsend.MailSendMainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{41e7efa8 V.E..... R......D 0,0-729,324} that was originally added here
09-21 14:05:38.009: E/WindowManager(26861): android.view.WindowLeaked: Activity com.example.mailsend.MailSendMainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{41e7efa8 V.E..... R......D 0,0-729,324} that was originally added here
09-21 14:05:38.009: E/WindowManager(26861):     at android.view.ViewRootImpl.<init>(ViewRootImpl.java:345)
09-21 14:05:38.009: E/WindowManager(26861):     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:239)
09-21 14:05:38.009: E/WindowManager(26861):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
09-21 14:05:38.009: E/WindowManager(26861):     at android.app.Dialog.show(Dialog.java:281)
09-21 14:05:38.009: E/WindowManager(26861):     at android.app.ProgressDialog.show(ProgressDialog.java:116)
09-21 14:05:38.009: E/WindowManager(26861):     at android.app.ProgressDialog.show(ProgressDialog.java:104)
09-21 14:05:38.009: E/WindowManager(26861):     at com.example.mailsend.MailSendMainActivity$SendMailTask.onPreExecute(MailSendMainActivity.java:67)
09-21 14:05:38.009: E/WindowManager(26861):     at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
09-21 14:05:38.009: E/WindowManager(26861):     at android.os.AsyncTask.execute(AsyncTask.java:534)
09-21 14:05:38.009: E/WindowManager(26861):     at com.example.mailsend.MailSendMainActivity.send(MailSendMainActivity.java:87)
09-21 14:05:38.009: E/WindowManager(26861):     at java.lang.reflect.Method.invokeNative(Native Method)
09-21 14:05:38.009: E/WindowManager(26861):     at java.lang.reflect.Method.invoke(Method.java:525)
09-21 14:05:38.009: E/WindowManager(26861):     at android.view.View$1.onClick(View.java:3628)
09-21 14:05:38.009: E/WindowManager(26861):     at android.view.View.performClick(View.java:4240)
09-21 14:05:38.009: E/WindowManager(26861):     at android.view.View$PerformClick.run(View.java:17721)
09-21 14:05:38.009: E/WindowManager(26861):     at android.os.Handler.handleCallback(Handler.java:730)
09-21 14:05:38.009: E/WindowManager(26861):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-21 14:05:38.009: E/WindowManager(26861):     at android.os.Looper.loop(Looper.java:137)
09-21 14:05:38.009: E/WindowManager(26861):     at android.app.ActivityThread.main(ActivityThread.java:5103)
09-21 14:05:38.009: E/WindowManager(26861):     at java.lang.reflect.Method.invokeNative(Native Method)
09-21 14:05:38.009: E/WindowManager(26861):     at java.lang.reflect.Method.invoke(Method.java:525)
09-21 14:05:38.009: E/WindowManager(26861):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-21 14:05:38.009: E/WindowManager(26861):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-21 14:05:38.009: E/WindowManager(26861):     at dalvik.system.NativeStart.main(Native Method)
09-21 14:05:37.408:E/AndroidRuntime(26861):致命异常:AsyncTask#1
09-21 14:05:37.408:E/AndroidRuntime(26861):java.lang.RuntimeException:执行doInBackground()时出错
09-21 14:05:37.408:E/AndroidRuntime(26861):在android.os.AsyncTask$3.done(AsyncTask.java:299)
09-21 14:05:37.408:E/AndroidRuntime(26861):在java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
09-21 14:05:37.408:E/AndroidRuntime(26861):位于java.util.concurrent.FutureTask.setException(FutureTask.java:219)
09-21 14:05:37.408:E/AndroidRuntime(26861):在java.util.concurrent.FutureTask.run(FutureTask.java:239)
09-21 14:05:37.408:E/AndroidRuntime(26861):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
09-21 14:05:37.408:E/AndroidRuntime(26861):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
09-21 14:05:37.408:E/AndroidRuntime(26861):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
09-21 14:05:37.408:E/AndroidRuntime(26861):在java.lang.Thread.run(Thread.java:841)处
09-21 14:05:37.408:E/AndroidRuntime(26861):由以下原因引起:java.lang.ArrayIndexOutOfBoundsException:length=0;索引=0
09-21 14:05:37.408:E/AndroidRuntime(26861):在com.example.mailsend.MailSendMainActivity$SendMailTask.doInBackground(MailSendMainActivity.java:79)
09-21 14:05:37.408:E/AndroidRuntime(26861):在com.example.mailsend.MailSendMainActivity$SendMailTask.doInBackground(MailSendMainActivity.java:1)
09-21 14:05:37.408:E/AndroidRuntime(26861):在android.os.AsyncTask$2.call(AsyncTask.java:287)
09-21 14:05:37.408:E/AndroidRuntime(26861):在java.util.concurrent.FutureTask.run(FutureTask.java:234)
09-21 14:05:37.408:E/AndroidRuntime(26861):。。。4更多
09-21 14:05:38.009:E/WindowManager(26861):Activity com.example.mailsend.mailsendmain活动泄漏了最初添加到此处的window com.android.internal.policy.impl.PhoneWindow$DecorView{41e7efa8 V.E…..R……d0,0-729324}
09-21 14:05:38.009:E/WindowManager(26861):android.view.WindowLeaked:Activity com.example.mailsend.mailsendmain活动已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView{41e7efa8 V.E…..R。。。。。
09-21 14:05:37.408: E/AndroidRuntime(26861): FATAL EXCEPTION: AsyncTask #1
09-21 14:05:37.408: E/AndroidRuntime(26861): java.lang.RuntimeException: An error occured while executing doInBackground()
09-21 14:05:37.408: E/AndroidRuntime(26861):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.util.concurrent.FutureTask.run(FutureTask.java:239)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.lang.Thread.run(Thread.java:841)
09-21 14:05:37.408: E/AndroidRuntime(26861): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
09-21 14:05:37.408: E/AndroidRuntime(26861):    at com.example.mailsend.MailSendMainActivity$SendMailTask.doInBackground(MailSendMainActivity.java:79)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at com.example.mailsend.MailSendMainActivity$SendMailTask.doInBackground(MailSendMainActivity.java:1)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
09-21 14:05:37.408: E/AndroidRuntime(26861):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
09-21 14:05:37.408: E/AndroidRuntime(26861):    ... 4 more
09-21 14:05:38.009: E/WindowManager(26861): Activity com.example.mailsend.MailSendMainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{41e7efa8 V.E..... R......D 0,0-729,324} that was originally added here
09-21 14:05:38.009: E/WindowManager(26861): android.view.WindowLeaked: Activity com.example.mailsend.MailSendMainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{41e7efa8 V.E..... R......D 0,0-729,324} that was originally added here
09-21 14:05:38.009: E/WindowManager(26861):     at android.view.ViewRootImpl.<init>(ViewRootImpl.java:345)
09-21 14:05:38.009: E/WindowManager(26861):     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:239)
09-21 14:05:38.009: E/WindowManager(26861):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
09-21 14:05:38.009: E/WindowManager(26861):     at android.app.Dialog.show(Dialog.java:281)
09-21 14:05:38.009: E/WindowManager(26861):     at android.app.ProgressDialog.show(ProgressDialog.java:116)
09-21 14:05:38.009: E/WindowManager(26861):     at android.app.ProgressDialog.show(ProgressDialog.java:104)
09-21 14:05:38.009: E/WindowManager(26861):     at com.example.mailsend.MailSendMainActivity$SendMailTask.onPreExecute(MailSendMainActivity.java:67)
09-21 14:05:38.009: E/WindowManager(26861):     at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
09-21 14:05:38.009: E/WindowManager(26861):     at android.os.AsyncTask.execute(AsyncTask.java:534)
09-21 14:05:38.009: E/WindowManager(26861):     at com.example.mailsend.MailSendMainActivity.send(MailSendMainActivity.java:87)
09-21 14:05:38.009: E/WindowManager(26861):     at java.lang.reflect.Method.invokeNative(Native Method)
09-21 14:05:38.009: E/WindowManager(26861):     at java.lang.reflect.Method.invoke(Method.java:525)
09-21 14:05:38.009: E/WindowManager(26861):     at android.view.View$1.onClick(View.java:3628)
09-21 14:05:38.009: E/WindowManager(26861):     at android.view.View.performClick(View.java:4240)
09-21 14:05:38.009: E/WindowManager(26861):     at android.view.View$PerformClick.run(View.java:17721)
09-21 14:05:38.009: E/WindowManager(26861):     at android.os.Handler.handleCallback(Handler.java:730)
09-21 14:05:38.009: E/WindowManager(26861):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-21 14:05:38.009: E/WindowManager(26861):     at android.os.Looper.loop(Looper.java:137)
09-21 14:05:38.009: E/WindowManager(26861):     at android.app.ActivityThread.main(ActivityThread.java:5103)
09-21 14:05:38.009: E/WindowManager(26861):     at java.lang.reflect.Method.invokeNative(Native Method)
09-21 14:05:38.009: E/WindowManager(26861):     at java.lang.reflect.Method.invoke(Method.java:525)
09-21 14:05:38.009: E/WindowManager(26861):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-21 14:05:38.009: E/WindowManager(26861):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-21 14:05:38.009: E/WindowManager(26861):     at dalvik.system.NativeStart.main(Native Method)