Java 异步任务冻结
在任何时候实例化我的对象EmailTask都不会发生错误Java 异步任务冻结,java,android,android-asynctask,Java,Android,Android Asynctask,在任何时候实例化我的对象EmailTask都不会发生错误 public void send(View view){ EditText text = (EditText) findViewById(R.id.editText); Switch iluminacao = (Switch) findViewById(R.id.switch1); Switch wifi = (Switch) findViewById(R.id.switch2);
public void send(View view){
EditText text = (EditText) findViewById(R.id.editText);
Switch iluminacao = (Switch) findViewById(R.id.switch1);
Switch wifi = (Switch) findViewById(R.id.switch2);
RatingBar mBar = (RatingBar) findViewById(R.id.ratingBar);
try {
EmailTask asyncTask = new EmailTask(text.getText().toString(), iluminacao.isChecked(), wifi.isChecked(), mBar.getNumStars());
asyncTask.execute();
}catch(Exception e){
e.printStackTrace();
}
}
我的异步任务
package com.morais.daniela.conectasp;
import android.os.AsyncTask;
import android.os.Build;
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
/**
* Created by daniela.morais on 24/03/15.
*/
public class EmailTask extends AsyncTask<Void, Void, Void> {
private String comments;
private boolean getIluminacao;
private boolean getWifi;
private float getStars;
private SimpleEmail email = new SimpleEmail();
/**
* Recebe feedbacks enviados pelo usuario e inicializa configuracoes do email
* @param comments
* @param getIluminacao
* @param getWifi
* @param getStars
*/
public EmailTask(String comments, boolean getIluminacao, boolean getWifi, float getStars) {
this.comments = comments;
this.getIluminacao = getIluminacao;
this.getWifi = getWifi;
this.getStars = getStars;
email.setSSLOnConnect(true);
email.setHostName("smtp.gmail.com");
email.setSslSmtpPort("465");
email.setAuthenticator(new DefaultAuthenticator("conectasaopaulo@gmail.com.br","senha"));
}
/**
* Encaminhar email
* @param params
* @return
*/
@Override
protected Void doInBackground(Void... params) {
String iluminacao = "Não.";
String wifi = "Não.";
if(getIluminacao==true){
iluminacao = "Sim.";
}
if(getWifi==true){
wifi = "Sim.";
}
try {
email.setFrom("conectasaopaulo@gmail.com.br");
email.setDebug(true);
email.setSubject("Feedback - ConectaSP");
email.setMsg("Houve problemas com a iluminação? " + iluminacao + "\n\n"
+ "Houve problemas com o wifi? " + wifi + "\n\n"
+ "Avaliação geral " + getStars + "\n\n"
+ "Comentários:\n" + comments + "\n\n"
+ "Informações gerais do aparelho\n" + Build.DEVICE + "\t" + Build.HARDWARE + "\t" + Build.MODEL);
email.addTo("dani.m@hotmail.co.uk");
email.send();
} catch (EmailException e) {
System.err.println("Erro ao enviar email.");
}
return null;
}
}
看起来您可能需要一个您没有的权限,或者您需要一个新版本的操作系统来运行
请检查FeedbackActivity并确保您没有使用任何SDK调用,这些调用不会在您正在测试的设备上运行。这是一条注释,不是答案。我不知道正在运行的所有代码,我正在查看出现的VerifyError,它表明代码有问题,例如使用特定操作系统不支持的SDK方法。比如说,伙计,你们都很坚强。我上面的评论有帮助吗?令人难以置信的是,因为他的回答中的反对票是正确的,问题是应用程序上的Gmail电子邮件访问权限未知。也许这会有帮助:尝试清理和重建项目,这可能是由库更改引起的,就像你正在使用一些外部jar一样。你能检查你的构建路径吗?这会有帮助:问题出在FeedbackActivity.java:50中,这是您的发送函数。你能分享吗?@codeMagic哈!谢谢:p
03-24 16:10:13.790 7215-7215/com.morais.daniela.conectasp E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:3103)
at android.view.View.performClick(View.java:3574)
at android.view.View$PerformClick.run(View.java:14293)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4448)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.view.View$1.onClick(View.java:3098)
at android.view.View.performClick(View.java:3574)
at android.view.View$PerformClick.run(View.java:14293)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4448)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.VerifyError: com/morais/daniela/conectasp/EmailTask
at com.morais.daniela.conectasp.FeedbackActivity.send(FeedbackActivity.java:50)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.view.View$1.onClick(View.java:3098)
at android.view.View.performClick(View.java:3574)
at android.view.View$PerformClick.run(View.java:14293)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4448)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
at dalvik.system.NativeStart.main(Native Method)