简体   繁体   English

我正在尝试使用我的应用程序登录。 我不明白这个错误。 我证明我的代码更简单,并且可以正常工作。 谢谢

[英]I am trying to login with my Apps. I dont understand the mistake. I prove my code for a example more easy and this had work it. thanks

when i click login button after enter email and password i got the error as "unfortunately,myapp has beeen stopped" and i got error message as FATAL EXCEPTION: AsyncTask #1 and An error occurred while executing doInBackground(). 当我在输入电子邮件和密码后单击登录按钮时,出现错误消息“不幸的是,myapp已停止运行”,并且出现错误消息,消息是致命异常:AsyncTask#1和执行doInBackground()时发生错误。 for ref i have attached code. 供参考,我已附上代码。 thanks for help 感谢帮助

public class LoginActivity extends Activity implements OnClickListener {

    Button submitBtn,registerBtn,forgotpassBtn;
    EditText emailEt,passwordEt;
    //SessionManager session;

    //Driver Login Fields
    EditText drloginEmail;
    EditText drloginPassword;
    TextView drloginResult;
    Button loginSubmitBtn;

    //Registration Fields
    EditText registrationName,registrationEmail,registrationPhone,registrationPassword,registrationConfirmPassword;
    TextView registrationResult;

    //LostPass Fields
    EditText lostPassEmail;
    TextView lostPassResltText;

    SharedPreferences sh;

    JSONParser jparser=new JSONParser();

    private static final String regiURL = "http://10.0.2.2/appslider/registration.php";
    public static final String loginURL = "http://10.0.2.2/appslider/login.php";
    public static final String getDataURL = null;
    public static final String recoverPasswordURL = "http://10.0.2.2/sendmail.php";

    Context con;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login_layout);

        con=LoginActivity.this;

        sh=getSharedPreferences("CRUZER_PREF", MODE_PRIVATE);

        init();

        String email=sh.getString("loginemail", null);
        String pass=sh.getString("loginpass", null);
        boolean driver=sh.getBoolean("type", false);

        if(email!=null && pass!=null && !driver){
            emailEt.setText(email);
            passwordEt.setText(pass);
            submitBtn.performClick();
        }else if(email!=null && pass!=null && driver){
            showDriverLoginDialog();
            drloginEmail.setText(email);
            drloginPassword.setText(pass);
            loginSubmitBtn.performClick();
        }

    }

    private void init() {

        submitBtn=(Button) findViewById(R.id.loginSubmitBtn);
        registerBtn=(Button) findViewById(R.id.loginRegisterBtn);
        forgotpassBtn=(Button) findViewById(R.id.loginForgotPassBtn);

        submitBtn.setOnClickListener(this);
        registerBtn.setOnClickListener(this);
        forgotpassBtn.setOnClickListener(this);

        emailEt=(EditText) findViewById(R.id.loginEmailEt);
        passwordEt=(EditText) findViewById(R.id.loginPassEt);

    }

    @Override
    public void onClick(View v) {
        if(!Util.isConnectingToInternet(this)){
            Util.showNoInternetDialog(this);
            return;
        }

        switch (v.getId()) {
            case R.id.loginSubmitBtn:
                if(!TextUtils.isEmpty(emailEt.getText().toString())){
                    if(!TextUtils.isEmpty(passwordEt.getText().toString())){
                        new Login().execute("client");
                    }else Toast.makeText(this, "Please enter your password", Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(this, "Please enter your email address", Toast.LENGTH_SHORT).show();
                }
                break;
            case R.id.loginRegisterBtn:
                showRegisterDialog();
                break;
            case R.id.loginForgotPassBtn:
                showLostPasswordDialog();
                break;
        }
    }

    class Login extends AsyncTask<String, String, String>{
        ProgressDialog pDialog;
        String s="";
        int success=-1;
        int error=0;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog=new ProgressDialog(con);
            pDialog.setMessage("Login is processing......");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        boolean driver=false;
        String email="";
        String password="";
        String drloginEmail;
        String drloginPassword;
        String emailEt;
        String passwordEt;

        @Override
        protected String doInBackground(String... st) {

            if(st!=null && st[0].equals("driver")){
                //email=drloginEmail.getText().toString();
                email=this.drloginEmail.toString();
                //password=drloginPassword.getText().toString();
                password=this.drloginPassword.toString();
                driver=true;
            }else{
                //email=emailEt.getText().toString();
                email=this.emailEt.toString();
                //password=passwordEt.getText().toString();
                password=this.passwordEt.toString();
            }

            List<NameValuePair> params=new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("email", email));
            params.add(new BasicNameValuePair("password", password));

            if(driver)params.add(new BasicNameValuePair("category", "driver"));
            else params.add(new BasicNameValuePair("category", "client"));

            UserInfo.setEmail(email);
            UserInfo.setPassword(password);

            try {
                JSONObject jobj=jparser.makeHttpRequest(loginURL, "POST", params);
                success=jobj.getInt("success");
                s=jobj.getString("message");

                if(success==1){
                    JSONObject job=jobj.getJSONArray("info").getJSONObject(0);
                    UserInfo.setName(job.getString("name"));
                    UserInfo.setPhonenumber(job.getString("number"));
                    UserInfo.setId(job.getString("id"));
                }

            } catch (JSONException e) {
                //  e.printStackTrace();
                error=1;
            }catch(Exception e){
                error=1;
            }

            return null;
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            pDialog.dismiss();

            if(error==1){
                if(Util.isConnectingToInternet(con)){
                    Toast.makeText(con, "Server is down, Please try again later", Toast.LENGTH_SHORT).show();
                }else
                    Util.showNoInternetDialog(con);
                return;
            }

            if(success==0){
                Toast.makeText(con, s, Toast.LENGTH_LONG).show();
            }else if(success==1){
                /*GetUserData data=new GetUserData();
                data.execute();*/

                SharedPreferences.Editor edit=sh.edit();
                edit.putString("loginemail", email);
                edit.putString("loginpass", password);
                edit.putBoolean("type", driver);
                edit.commit();


                Intent i=new Intent(con, DriverPositionActivity.class);
                if(driver)
                    i=new Intent(con, DriverActivity.class);

                startActivity(i);
                Toast.makeText(con, s, Toast.LENGTH_SHORT).show();
                finish();
            }
        }
    }
}

This is what you have done inside doInBackground 这是您在doInBackground内部所做的

        if(st!=null && st[0].equals("driver")){
            //email=drloginEmail.getText().toString();
            email=this.drloginEmail.toString();
            //password=drloginPassword.getText().toString();
            password=this.drloginPassword.toString();
            driver=true;
        }else{
            //email=emailEt.getText().toString();
            email=this.emailEt.toString();
            //password=passwordEt.getText().toString();
            password=this.passwordEt.toString();
        }

here inside login async class you have not initilize variables named as drloginEmail,passwordEt and you are fetching data from that may be this is a issue. 在登录异步类中,您没有初始化名为drloginEmail,passwordEt的变量,并且正在从中获取数据,这可能是个问题。 Please initilize these variables with the values getting from corresponding EditText's. 请使用从相应EditText获得的值来初始化这些变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我不明白这段代码 - i dont understand this code 我不明白为什么在我的可扩展列表视图的 onChildClick 方法中出现致命异常 - I dont understand why I am getting a fatal exception in my onChildClick method for my expandable list view 我正在尝试记录通话。 我可以录音,但我不知道在哪里停止录音。 下面是我的代码 - I am trying to record calls. I can record call but i dont know where to stop recorder. Below is my Code 我的代码给出了运行时错误! 我是android编程的新手,谁能告诉我我的错误 - My code is giving runtime error! i am new to android programming can anyone tell my mistake 如何使用我正在使用的代码调整我的 function 以显示正确的值。 这样可能吗? 谢谢 - How do I adjust my function to display the correct value using the code that I am using. Is it possible this way? Thanks android 我不明白我的子类 ImageView 中的长按检测 - android I dont understand Long press detection in my subclass ImageView 我正在尝试在我的应用程序中使用Facebook登录,但是出现了清单合并失败的错误 - I am Trying to use facebook login in My app but I am getting an error that Manifest Merger faild 我不明白我的Android应用程序的错误在哪里 - I don't understand where is the error for my android apps 我不想要一个以上的活动实例 - I dont want more than one instance of my activity 为什么我每次在手机上运行新的 flutter 代码时都会得到默认的 flutter 示例代码? - Why am i getting the default flutter example code every time i run my new flutter code on my phone?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM