[英]Why can't instantiate an object by clicking on my button?
The operation button is correct, it performs all previous lines. 操作按钮是正确的,它将执行所有先前的行。 However, when instantiating an
email
object displays the error. 但是,在实例化
email
对象时显示错误。
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);
System.out.println(text.getText().toString() + iluminacao.isChecked() +
wifi.isChecked() + mBar.getNumStars());
Email email = new Email();
email.sendEmail(text.getText().toString(), iluminacao.isChecked(),
wifi.isChecked(), mBar.getNumStars());
}
Email.Java 电子邮件
package com.morais.daniela.conectasp;
import android.os.Build;
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class Email {
private SimpleEmail email = new SimpleEmail();
//FIXME
//Adicionar email correto para onde deverá ser enviado!
public Email() {
email.setSSLOnConnect(true);
email.setHostName("smtp.gmail.com");
email.setSslSmtpPort("465");
email.setAuthenticator(new DefaultAuthenticator("conectasaopaulo@gmail.com.br","senha"));
}
public void sendEmail(String comments, boolean getIluminacao, boolean getWifi, float getStars){
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.");
}
}
}
Error 错误
03-24 12:37:36.277 4037-4037/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/Email
at com.morais.daniela.conectasp.FeedbackActivity.send(FeedbackActivity.java:53)
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)
Please check below code: 请检查以下代码:
private SimpleEmail email = new SimpleEmail();
//FIXME
//Adicionar email correto para onde deverá ser enviado!
public Email() {
if(email==null)
email = new SimpleEmail();
email.setSSLOnConnect(true);
email.setHostName("smtp.gmail.com");
email.setSslSmtpPort("465");
email.setAuthenticator(new DefaultAuthenticator("conectasaopaulo@gmail.com.br","senha"));
}
And also check permission in manifest file regarding email. 并检查清单文件中有关电子邮件的权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.