即使所有参数都准确,也会获得'ParseException:无效的登录参数'

时间:2016-01-05 10:36:04

标签: java android android-intent parse-platform

我已经整合了Parse注册&登录我的应用程序。

我已成功注册但当我退出后再次注销时,我收到了ParseExceptioncom.parse.ParseRequest$ParseRequestException: invalid login parameters

这是LoginWithEmail.java文件的代码:

public class LoginWithEmail extends AppCompatActivity {


    EditText mUsername;
    EditText mPassword;
    public String name, email, userID;
    Intent profileIntent;
    ParseUser user;
    String login_username;
    String login_password;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login_with_email);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        mUsername = (EditText) findViewById(R.id.userNameEmail);
        login_username = mUsername.getText().toString();

        mPassword = (EditText) findViewById(R.id.userPasswordEmail);
        login_password = mPassword.getText().toString();

        findViewById(R.id.email_login_btn).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                loginWithEmail();
            }
        });

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }



    private void loginWithEmail() {

        ParseUser.logInInBackground(login_username, login_password, new LogInCallback() {
            public void done(ParseUser user, ParseException e) {
                if (user != null) {
                    // Hooray! The user is logged in.
                    Log.d(login_username, login_username+"success");
                    profileIntent = new Intent(LoginWithEmail.this, ProfileActivity.class);
                    startActivity(profileIntent);
                } else {
                    // Signup failed. Look at the ParseException to see what happened.
                    Log.d("error signingup email", e.toString());
                    Log.d(login_username, login_username+"error", e);
                    Log.d(login_password, login_password+"error", e);
                    AlertDialog.Builder builder = new AlertDialog.Builder(LoginWithEmail.this);
                    builder.setTitle("");
                    builder.setMessage(e.getMessage());
                    builder.setPositiveButton(android.R.string.ok, null);
                }
            }
        });
    }

}

这是ProfileActivity.java文件的代码(我要退出的地方):

public class ProfileActivity extends AppCompatActivity {

    CircleImageView mProfileImage;
    Bitmap bitmap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_profile);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        Bundle bundle = getIntent().getExtras();

        mProfileImage = (CircleImageView) findViewById(R.id.user_profile_image);
        TextView mUsername = (TextView) findViewById(R.id.userName);
        TextView mEmailID = (TextView) findViewById(R.id.aboutUser);

        byte[] byteArray = getIntent().getByteArrayExtra("user_pic");
        Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
        mProfileImage.setImageBitmap(bmp);

        mUsername.setText(bundle.getString("userName"));
        mEmailID.setText(bundle.getString("userEmail"));

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.menu_profile, menu);

        return true;

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        int id = item.getItemId();

        if (id == R.id.action_logout) {
            ParseUser.logOut();
            navigateToLogin();
        }

        return super.onOptionsItemSelected(item);
    }

    private void navigateToLogin() {
        Intent intent = new Intent(this, SignUpScreen.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(intent);
    }

}

请告诉我这里出了什么问题!

1 个答案:

答案 0 :(得分:0)

你的问题是onCreate()方法中的这些行:

login_username = mUsername.getText().toString();
login_password = mPassword.getText().toString();

将这些行移到此处:

findViewById(R.id.email_login_btn).setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View view) {
        loginWithEmail();
    }

});

像这样:

findViewById(R.id.email_login_btn).setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View view) {
        login_username = mUsername.getText().toString();
        login_password = mPassword.getText().toString();
        loginWithEmail();
    }

});