Java 应用程序已停止,请登录

Java 应用程序已停止,请登录,java,php,android,apache,login,Java,Php,Android,Apache,Login,每次我在登录时按下提交按钮,它就会关闭,我不知道这里有什么问题。。 …我正在使用XAMPP(MySql和Apache都已启动)。。 …我正在使用localhost/phpmyadmin …我的数据库名为“newdatabase” …我的登录表名为“mytable” …在“mytable”中是[ss_num]和[passs](它们是正确的(ss_num=username | passs=password)) 扩展活动中的公共类成员日志实现OnClickListener{ private Edit

每次我在登录时按下提交按钮,它就会关闭,我不知道这里有什么问题。。 …我正在使用XAMPP(MySql和Apache都已启动)。。 …我正在使用localhost/phpmyadmin …我的数据库名为“newdatabase” …我的登录表名为“mytable” …在“mytable”中是[ss_num]和[passs](它们是正确的(ss_num=username | passs=password))

扩展活动中的公共类成员日志实现OnClickListener{

 private EditText user, pass;

     private Button mSubmit, mRegister;

     JSONParser jsonParser = new JSONParser();
     private static final String LOGIN_URL = "http://192.168.1.7/adrx/logins.php";
     private static final String TAG_SUCCESS = "success";
     private static final String TAG_MESSAGE = "message";


     @Override

         protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.activity_member__log__in);

             user = (EditText)findViewById(R.id.username);
             pass = (EditText)findViewById(R.id.password);
             mSubmit = (Button)findViewById(R.id.bLogin);

             mSubmit.setOnClickListener(this);



         }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
    if(v==mSubmit){

        new loglogin().execute();

    }


    }


     class loglogin extends AsyncTask<String, String, String> {

          String username = user.getText().toString();

            String password = pass.getText().toString();


                @Override

                protected String doInBackground(String... args) {

                    int success;


                    try {

                        List<NameValuePair> params = new ArrayList<NameValuePair>();

                        params.add(new BasicNameValuePair("ss_num", username));
                        params.add(new BasicNameValuePair("passs", password));

                      JSONObject json = jsonParser.makeHttpRequest(LOGIN_URL, "POST", params);

                       // Log.d("request!", "starting");
                        Log.d("Login attempt", json.toString());

                        success = json.getInt(TAG_SUCCESS);

                        if (success == 1) {


                            Log.d("Login Successful!", json.toString());
                            Toast.makeText(getApplicationContext(), "SUCCESS!", Toast.LENGTH_SHORT).show();

                            return json.getString(TAG_MESSAGE);

                        }else{


                            Log.d("Login Failure!", json.getString(TAG_MESSAGE));
                            Toast.makeText(getApplicationContext(), "FAILED!", Toast.LENGTH_SHORT).show();

                            return json.getString(TAG_MESSAGE);

                        }

                    } catch (JSONException e) {

                        e.printStackTrace();

                    }

                    return null;

                }
  }
                }
//end
私有编辑文本用户,通过;
私人按钮mSubmit,mRegister;
JSONParser JSONParser=新的JSONParser();
私有静态最终字符串登录\u URL=”http://192.168.1.7/adrx/logins.php";
私有静态最终字符串标记_SUCCESS=“SUCCESS”;
私有静态最终字符串标记_MESSAGE=“MESSAGE”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u member\u\u log\u in);
user=(EditText)findViewById(R.id.username);
pass=(EditText)findViewById(R.id.password);
mSubmit=(按钮)findviewbyd(R.id.bLogin);
mSubmit.setOnClickListener(这个);
}
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
如果(v==mSubmit){
新建loglogin().execute();
}
}
类loglogin扩展了异步任务{
字符串username=user.getText().toString();
字符串密码=pass.getText().toString();
@凌驾
受保护的字符串doInBackground(字符串…args){
成功;
试一试{
List params=new ArrayList();
添加(新的BasicNameValuePair(“ss_num”,用户名));
添加(新的BasicNameValuePair(“passs”,password));
JSONObject json=jsonParser.makeHttpRequest(登录URL,“POST”,参数);
//Log.d(“请求!”,“启动”);
Log.d(“登录尝试”,json.toString());
success=json.getInt(TAG_success);
如果(成功==1){
Log.d(“登录成功!”,json.toString();
Toast.makeText(getApplicationContext(),“SUCCESS!”,Toast.LENGTH\u SHORT.show();
返回json.getString(TAG_消息);
}否则{
Log.d(“登录失败!”,json.getString(TAG_MESSAGE));
Toast.makeText(getApplicationContext(),“失败!”,Toast.LENGTH\u SHORT.show();
返回json.getString(TAG_消息);
}
}捕获(JSONException e){
e、 printStackTrace();
}
返回null;
}
}
}
//结束

错误日志

12-18 22:10:36.133: E/AndroidRuntime(9954): FATAL EXCEPTION: AsyncTask #1
12-18 22:10:36.133: E/AndroidRuntime(9954): java.lang.RuntimeException: An error occured while executing doInBackground()
12-18 22:10:36.133: E/AndroidRuntime(9954):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at java.util.concurrent.FutureTask.run(FutureTask.java:239)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at java.lang.Thread.run(Thread.java:838)
12-18 22:10:36.133: E/AndroidRuntime(9954): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
12-18 22:10:36.133: E/AndroidRuntime(9954):     at android.os.Handler.<init>(Handler.java:205)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at android.os.Handler.<init>(Handler.java:119)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at android.widget.Toast$TN.<init>(Toast.java:324)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at android.widget.Toast.<init>(Toast.java:91)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at android.widget.Toast.makeText(Toast.java:238)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at com.example.citizenschartersss.Member_Log_In$loglogin.doInBackground(Member_Log_In.java:118)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at com.example.citizenschartersss.Member_Log_In$loglogin.doInBackground(Member_Log_In.java:1)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
12-18 22:10:36.133: E/AndroidRuntime(9954):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
12-18 22:10:36.133: E/AndroidRuntime(9954):     ... 4 more
12-18 22:10:36.133:E/AndroidRuntime(9954):致命异常:AsyncTask#1
12-18 22:10:36.133:E/AndroidRuntime(9954):java.lang.RuntimeException:执行doInBackground()时出错
12-18 22:10:36.133:E/AndroidRuntime(9954):在android.os.AsyncTask$3.done(AsyncTask.java:299)
12-18 22:10:36.133:E/AndroidRuntime(9954):在java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
12-18 22:10:36.133:E/AndroidRuntime(9954):位于java.util.concurrent.FutureTask.setException(FutureTask.java:219)
12-18 22:10:36.133:E/AndroidRuntime(9954):在java.util.concurrent.FutureTask.run(FutureTask.java:239)
12-18 22:10:36.133:E/AndroidRuntime(9954):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
12-18 22:10:36.133:E/AndroidRuntime(9954):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
12-18 22:10:36.133:E/AndroidRuntime(9954):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
12-18 22:10:36.133:E/AndroidRuntime(9954):在java.lang.Thread.run(Thread.java:838)
12-18 22:10:36.133:E/AndroidRuntime(9954):原因:java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序
12-18 22:10:36.133:E/AndroidRuntime(9954):在android.os.Handler.(Handler.java:205)
12-18 22:10:36.133:E/AndroidRuntime(9954):在android.os.Handler.(Handler.java:119)
12-18 22:10:36.133:E/AndroidRuntime(9954):在android.widget.Toast$TN.(Toast.java:324)
12-18 22:10:36.133:E/AndroidRuntime(9954):在android.widget.Toast.(Toast.java:91)
12-18 22:10:36.133:E/AndroidRuntime(9954):在android.widget.Toast.makeText(Toast.java:238)上
12-18 22:10:36.133:E/AndroidRuntime(9954):在com.example.citizensharterss.Member_Log_In$loglogin.doInBackground(Member_Log_In.java:118)
12-18 22:10:36.133:E/AndroidRuntime(9954):在com.example.citizensharterss.Member_Log_In$loglogin.doInBackground(Member_Log_In.java:1)
12-18 22:10:36.133:E/AndroidRuntime(9954):在android.os.AsyncTask$2.call(AsyncTask.java:287)
12-18 22:10:36.133:E/AndroidRuntime(9954):在java.util.concurrent.FutureTask.run(FutureTask.java:234)
12-18 22:10:36.133:E/AndroidRuntime(9954):。。。4更多

您不能在后台线程中触摸UI。例如,您不能在异步任务
doInBackground()
中显示
Toast
s


您可以使用
runOnUiThread()
Runnable
发布到UI线程,或者将调试从Toast更改为常规日志记录。

Toast是UI,与所有UI一样,只能在主UI线程上操作


我建议使用(我没有参与这个项目,但在生产应用程序中已经使用了一段时间)发布登录任务的结果,并让您的活动在UI线程上侦听这些事件,您可以在UI线程中修改UI。

给我们错误日志,以便更快地查看问题所在。您是否获得了internet许可证