Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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
Java语言非法状态异常_Java_Android_Xml - Fatal编程技术网

Java语言非法状态异常

Java语言非法状态异常,java,android,xml,Java,Android,Xml,我是android新手。我试图进行简单的登录活动,但当我点击登录按钮时,我遇到了运行时错误。我想我没有正确地获取数据。我已经检查过了,在SQLite中有一个数据对应于那个PK logcat FATAL EXCEPTION: main Process: com.example.champ.remindme, PID: 4043 java.lang.Il

我是android新手。我试图进行简单的登录活动,但当我点击登录按钮时,我遇到了运行时错误。我想我没有正确地获取数据。我已经检查过了,在SQLite中有一个数据对应于那个PK

logcat

FATAL EXCEPTION: main
                                                                          Process: com.example.champ.remindme, PID: 4043
java.lang.IllegalStateException: Could not execute method for android:onClick
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:289)
    at android.view.View.performClick(View.java:4780)
    at android.view.View$PerformClick.run(View.java:19866)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5254)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
    at android.view.View.performClick(View.java:4780) 
    at android.view.View$PerformClick.run(View.java:19866) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5254) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor android.database.sqlite.SQLiteDatabase.rawQuery(java.lang.String, java.lang.String[])' on a null object reference
    at com.example.champ.remindme.Login.LogIn(Login.java:45)
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) 
    at android.view.View.performClick(View.java:4780) 
    at android.view.View$PerformClick.run(View.java:19866) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5254) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
java代码。 包com.example.champ.emememptime; 导入android.app.AlertDialog; 导入android.content.Intent; 导入android.database.Cursor; 导入android.database.sqlite.SQLiteDatabase; 导入android.os.Bundle; 导入android.support.v7.app.AppActivity; 导入android.view.view; 导入android.widget.Button; 导入android.widget.EditText; 导入android.widget.Toast; 公共类登录扩展了AppCompatActivity{ EditText-edtUsername,edtPass; 字符串用户名、密码; int计数器=3; 按钮登录按钮; sqlitedb数据库; //文本视图TXT; //专用最终整数间隔=3000; /*private Runnable Runnable=新Runnable{ 公开募捐{ LoginButton.setEnabledtrue; } }; */ @凌驾 受保护的void onCreateBundle savedInstanceState{ super.onCreatesavedInstanceState; setContentViewR.layout.activity\u登录; LoginButton=ButtonfindViewByIdR.id.LoginButton; edtUsername=EditTextfindViewByIdR.id.edtitem; //Username=edtUsername.getText.toString; edtPass=EditTextfindViewByIdR.id.password; } 公共无效登录视图v{ ifedtUsername.getText.toString.trim.length==0 | | edtPass.getText.toString.trim.length==0 { showMessageError,请输入空文本框; 回来 } 游标c=db.rawQuerySELECT*来自用户名为“+edtUsername.getText+”的用户,null; ifc.moveToFirst { Username=c.getString1; 密码=c.getString2; 如果edtUsername.getText.toString.equalsUsername&&edtPass.getText.toString.equalsPassword{ Toast.makeTextLogin.this,登录成功,Toast.LENGTH\u LONG.show; 意向意向=新意向此,Menu.class; intent.putExtraUsername,Username; 星状体; } 否则{ Toast.makeTextLogin.this,登录失败,Toast.LENGTH\u LONG.show; 反;; } //txtAttempts.setTextAttempts左:+计数器; 如果计数器==0{ LoginButton.setEnabledfalse; //new Timer.scheduleTimerTask runnable,间隔; } } 其他的 { showMessageError,用户名无效; } /*---------------------------------*/ } 公共无效注册视图v{ 意向意向=新意向此,SignUp.class; 星状体; } public void showmessage字符串标题,字符串消息 { AlertDialog.Builder=新建AlertDialog.Builder此; builder.setCancelabletrue; builder.settitletle; builder.setMessagemessage; 建筑商秀; } } XML代码。
您在使用db之前没有初始化它。将此添加到onCreate中


您在使用db之前没有初始化它。将此添加到onCreate中


无事可做。仅在XML文件的按钮属性中删除

android:onClick
在您的活动类型中:-

LoginButton.setOnClickListener(new OnClickListener(){
@Override
    onClick(){
        LogIn();
      }
});
我也面临这个问题。是的,我知道你的过程也没有错。但事实是我不知道为什么这个过程对我不起作用。但当我以编程方式实现onClick方法时,它就像一个符咒。我希望你的代码也能正常工作

并添加onCreate方法

db = getWritableDatabase();

无事可做。仅在XML文件的按钮属性中删除

android:onClick
在您的活动类型中:-

LoginButton.setOnClickListener(new OnClickListener(){
@Override
    onClick(){
        LogIn();
      }
});
我也面临这个问题。是的,我知道你的过程也没有错。但事实是我不知道为什么这个过程对我不起作用。但当我以编程方式实现onClick方法时,它就像一个符咒。我希望你的代码也能正常工作

并添加onCreate方法

db = getWritableDatabase();

看起来db是空的,你需要在使用它之前初始化这个变量。看起来db是空的,你需要在使用它之前初始化这个变量。这里肯定不是这种情况。这是NPE,因为db没有初始化。这里肯定不是这种情况。这是NPE,因为db未初始化。