Java 为什么我';我在安卓显示器上发现了这个错误?

Java 为什么我';我在安卓显示器上发现了这个错误?,java,android,android-volley,Java,Android,Android Volley,这是我的错误 E/Volley: [272] BasicNetwork.performRequest: Unexpected response code 404 for http://192.168.0.102/line_app/includes/loginUser.php com.android.volley.ClientError com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:190) com

这是我的错误

E/Volley: [272] BasicNetwork.performRequest: Unexpected response code 404 for http://192.168.0.102/line_app/includes/loginUser.php
com.android.volley.ClientError
com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:190)
com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:120)
com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:87)
GL_emulation: eglSurfaceAttrib not implemented
Failed to set EGL_SWAP_BEHAVIOR on surface 0xf3f9ee80, error=EGL_SUCCES
我的代码

MainActivity.java

package com.example.rahul.lineapp;

import android.app.ProgressDialog;
import android.content.Intent;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.NetworkError;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.ServerError;
import com.android.volley.TimeoutError;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.Volley;

import org.json.JSONException;
import org.json.JSONObject;

public class MainActivity extends AppCompatActivity {
    TextInputLayout ltxtb1,ltxtb2;
    Button lbtn1;
    String email, password;
    TextView ltxt1;
    RequestQueue requestQueue;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("Login"); //set title of the activity
        initialize(); //Initialize all the components present in the layout
        requestQueue = Volley.newRequestQueue(MainActivity.this);//Creating the RequestQueue
        //Login Button Clicked
        lbtn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                email = ltxtb1.getEditText().getText().toString();
                password = ltxtb2.getEditText().getText().toString();
                if (validateUsername(email) && validatePassword(password)) { //email and Password Validation
                    final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
                    progressDialog.setTitle("Please Wait");
                    progressDialog.setMessage("Logging You In");
                    progressDialog.setCancelable(false);
                    progressDialog.show();
                    LoginRequest loginRequest = new LoginRequest(email, password, new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            Log.i("Login Response", response);
                            progressDialog.dismiss();
                            // Response from the server is in the form if a JSON, so we need a JSON Object
                            try {
                                JSONObject jsonObject = new JSONObject(response);
                                if (jsonObject.getBoolean("success")) {
                                    Intent loginSuccess = new Intent(MainActivity.this, dash.class);
                                    //Passing all received data from server to next activity
                                    loginSuccess.putExtra("username", jsonObject.getString("username"));
                                    loginSuccess.putExtra("email", jsonObject.getString("email"));
                                    startActivity(loginSuccess);
                                    finish();
                                } else {
                                    if(jsonObject.getString("status").equals("INVALID"))
                                        Toast.makeText(MainActivity.this, "User Not Found", Toast.LENGTH_SHORT).show();
                                    else{
                                        Toast.makeText(MainActivity.this, "Passwords Don't Match", Toast.LENGTH_SHORT).show();
                                    }
                                }
                                }catch (JSONException e) {
                                e.printStackTrace();
                                Toast.makeText(MainActivity.this, "Bad Response From Server", Toast.LENGTH_SHORT).show();
                            }
                        }
                    }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            progressDialog.dismiss();
                            if (error instanceof ServerError)
                                Toast.makeText(MainActivity.this, "Server Error", Toast.LENGTH_SHORT).show();
                            else if (error instanceof TimeoutError)
                                Toast.makeText(MainActivity.this, "Connection Timed Out", Toast.LENGTH_SHORT).show();
                            else if (error instanceof NetworkError)
                                Toast.makeText(MainActivity.this, "Bad Network Connection", Toast.LENGTH_SHORT).show();
                            error.printStackTrace();
                        }
                    });
                    requestQueue.add(loginRequest);
                }
            }
        });
        //Don't Have An Account TextView Clicked
        ltxt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SignupActivity.class);
                startActivity(intent);
            }
        });
    }
    private void initialize() {
        ltxtb1 = (TextInputLayout) findViewById(R.id.txtbx1);
        ltxtb2 = (TextInputLayout) findViewById(R.id.txtbx2);
        lbtn1 = (Button) findViewById(R.id.button1);
        ltxt1 = (TextView) findViewById(R.id.txt2);
    }
    private boolean validateUsername(String string) {
        //Validating the entered USERNAME
        if (string.equals("")) {
            ltxtb1.setError("Enter a Email");
            return false;
        } else if (string.length() > 50) {
            ltxtb1.setError("Maximum 50 Characters");
            return false;
        } else if (string.length() < 6) {
            ltxtb1.setError("Minimum 6 Characters");
            return false;
        }
        ltxtb1.setErrorEnabled(false);
        return true;
    }
    private boolean validatePassword(String string) {
        //Validating the entered PASSWORD
        if (string.equals("")) {
            ltxtb2.setError("Enter Your Password");
            return false;
        } else if (string.length() > 32) {
            ltxtb2.setError("Maximum 32 Characters");
            return false;
        } else if (string.length() < 8) {
            ltxtb2.setError("Minimum 8 Characters");
            return false;
        }
        ltxtb2.setErrorEnabled(false);
        return true;
    }
}
package com.example.rahul.lineapp;
导入android.app.ProgressDialog;
导入android.content.Intent;
导入android.support.design.widget.TextInputLayout;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.android.volley.NetworkError;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.ServerError;
导入com.android.volley.TimeoutError;
导入com.android.volley.VolleyError;
导入com.android.volley.toolbox.volley;
导入org.json.JSONException;
导入org.json.JSONObject;
公共类MainActivity扩展了AppCompatActivity{
文本输入布局ltxtb1、ltxtb2;
按钮lbtn1;
字符串电子邮件,密码;
文本视图ltxt1;
请求队列请求队列;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle(“Login”);//设置活动的标题
initialize();//初始化布局中的所有组件
requestQueue=Volley.newRequestQueue(MainActivity.this);//创建requestQueue
//单击登录按钮
lbtn1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
email=ltxtb1.getEditText().getText().toString();
密码=ltxtb2.getEditText().getText().toString();
if(validateUsername(电子邮件)&&validatePassword(密码)){//电子邮件和密码验证
final ProgressDialog ProgressDialog=新建ProgressDialog(MainActivity.this);
progressDialog.setTitle(“请稍候”);
progressDialog.setMessage(“登录您”);
progressDialog.setCancelable(假);
progressDialog.show();
LoginRequest LoginRequest=新的LoginRequest(电子邮件、密码、新响应.Listener(){
@凌驾
公共void onResponse(字符串响应){
Log.i(“登录响应”,响应);
progressDialog.disclose();
//来自服务器的响应的形式为if-JSON,因此我们需要一个JSON对象
试一试{
JSONObject JSONObject=新JSONObject(响应);
if(jsonObject.getBoolean(“成功”)){
意向登录成功=新意向(MainActivity.this,dash.class);
//将所有接收到的数据从服务器传递到下一个活动
loginsAccess.putExtra(“用户名”,jsonObject.getString(“用户名”);
loginsAccess.putExtra(“电子邮件”,jsonObject.getString(“电子邮件”);
startActivity(登录成功);
完成();
}否则{
if(jsonObject.getString(“status”).equals(“INVALID”))
Toast.makeText(MainActivity.this,“未找到用户”,Toast.LENGTH_SHORT.show();
否则{
Toast.makeText(MainActivity.this,“密码不匹配”,Toast.LENGTH_SHORT.show();
}
}
}捕获(JSONException e){
e、 printStackTrace();
Toast.makeText(MainActivity.this,“来自服务器的错误响应”,Toast.LENGTH_SHORT.show();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
progressDialog.disclose();
if(服务器错误实例)
Toast.makeText(MainActivity.this,“服务器错误”,Toast.LENGTH_SHORT.show();
else if(TimeoutError的错误实例)
Toast.makeText(MainActivity.this,“连接超时”,Toast.LENGTH_SHORT.show();
else if(网络错误实例error)
Toast.makeText(MainActivity.this,“坏网络连接”,Toast.LENGTH_SHORT.show();
错误。printStackTrace();
}
});
添加(loginRequest);
}
}
});
//没有单击帐户文本视图
ltxt1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向意向=新意向(MainActivity.this,SignupActivity.class);
星触觉(意向);
}
});
}
私有void初始化(){
ltxtb1=(TextInputLayout)findViewById(R.id.txtbx1);
ltxtb2=(TextInputLayout)findViewById(R.id.txtbx2);
lbtn1=(按钮)findViewById(R.id.button1);
ltxt1=(TextView)findViewById(R.id.txt2);
}
私有布尔validateUsername(字符串){
//正在验证输入的用户名
if(string.equals(“”){
ltxtb1.setError(“输入电子邮件”);
返回false;
}else if(string.length()>50){
ltxtb1.setError(“最多50个字符”);
返回false;
}else if(string.length()<6){
package com.example.rahul.lineapp;
import com.android.volley.AuthFailureError;
import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;
import java.util.HashMap;
import java.util.Map;
public class LoginRequest extends StringRequest {
    private static final String ROOT_URL = "http://192.168.0.102/line_app/includes/";
    public static final String LOGIN_URL = ROOT_URL+"loginUser.php";
    private Map<String, String> parameters;
    public LoginRequest(String email, String password, Response.Listener<String> listener, Response.ErrorListener errorListener) {
        super(Method.POST, LOGIN_URL, listener, errorListener);
        parameters = new HashMap<>();
        parameters.put("email", email);
        parameters.put("password", password);
    }
    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        return parameters;
    }
}