这个问题在这里已有答案:
我试图将登录详细信息传递给另一个类,以便它可以用于登录我的MySQL数据库(使用php)但它崩溃给我异常:java.lang.IllegalStateException:无法执行android的方法:onClick
堆栈跟踪:{StackTraceElement [0] @ 5692}
658 10752-10752 / uk.ac.abertay.contactslist E / AndroidRuntime:FATAL EXCEPTION:main进程:uk.ac.abertay.contactslist,PID:10752 java.lang.IllegalStateException:无法执行android的方法:onClick at android . support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)at android.view.View.performClick(View.java:6294)at android.view.View $ PerformClick.run(View.java:24770)在android.os.Handler.handleCallback(Handler.java:790)在Android.app的android.os.Handler.dispatchMessage(Handler.java:99)android.os.Looper.loop(Looper.java:164) . Activity.Thread.main(ActivityThread.java:6494)位于com.android的com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)的java.lang.reflect.Method.invoke(Native Method)中 . internal.os.ZygoteInit.main(ZygoteInit.java:807)引起:java.lang.reflect.Method.invoke的java.lang.reflect.InvocationTargetException(本机方法)android.support.v7.app.AppCompatViewInflater $声明在android.view.Handler.handleCallback的android.view.View $ PerformClick.run(View.java:24770)上的android.view.View.performClick(View.java:6294)上的OnClickListener.onClick(AppCompatViewInflater.java:288) (Handler.java:790)android.app.Handler.dispatchMessage(Handler.java:99)android.app.Looper.loop(Looper.java:164)android.app.ActivityThread.main(ActivityThread.java: 6494)位于com.android.internal.os.ZygoteInit.main的com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)的java.lang.reflect.Method.invoke(Native Method)( ZygoteInit.java:807)引起:java.lang.NullPointerException:尝试在空对象引用上调用虚方法'void uk.ac.abertay.contactslist.Login.Logino(uk.ac.abertay.contactslist.LoginDetails)' at uk.ac.abertay.contactslist.LoginActivity.Loginbutton(LoginActivity.java:40)at java.lang.reflect.Method.invoke(Native Method)at android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater . java的:288)在android.view.View.performClick(View.java:6294)android.view.View $ PerformClick.run(View.java:24770)android.os.Handler.handleCallback(Handler.java:790)在android.os.Handler.dispatchMessage(Handler.java:99)的android.app.Looper.loop(Looper.java:164)在android.app.ActivityThread.main(ActivityThread.java:6494)的java.lang上 . 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)的com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)中反映.Method.invoke(Native Method) -26 15:39:34.761 1384-3633 /?我/ chatty:uid = 1041(audioserver)作家相同的8行
这是按钮的代码
private Login login;
public void Loginbutton(View v) {
/* Get entered fields data. */
String email = field_email.getText().toString();
String password = field_password.getText().toString();
login.Logino(new LoginDetails(email,password));
}
在调试它时会运行它并返回到按钮,然后它会给出异常并崩溃
public class LoginDetails {
public String email = "";
public String password = "";
LoginDetails(String e, String p) {
email = e;
password = p;
}
}
这是我试图用上面的按钮运行的代码
public void Logino(LoginDetails loginDetails) {
LoginTask task = new LoginTask();
task.execute(loginDetails);
}
1 回答
来自StackTrace
对象登录行
login.Logino
为空,您必须初始化它 .Obs:请使用Java命名约定,方法名称以小写字母char开头 .