Войти через HTTP AsyncTask

Я боролся с AsyncTask. Я не мог найти ошибку. Я не понимаю, почему AsyncTask не работает, хотя все, что у меня есть, это String и Boolean ниже. Помоги пожалуйста. Спасибо.

Ошибка в части onPostExecute:

Метод не переопределял метод из своего суперкласса.

public class UserLoginTask extends AsyncTask<String, String, String> { private final String mEmail; private final String mPassword; UserLoginTask(String email, String password) { mEmail = email; mPassword = password; } @Override protected String doInBackground(String... arg0) { try{ for (String credential : DUMMY_CREDENTIALS) { String[] pieces = credential.split(":"); if (pieces[0].equals(mEmail) && pieces[1].equals(mPassword)) { // Account exists, return true if the password matches. pieces[0]=arg0[0]; pieces[1]=arg0[1]; } } String username = (String)arg0[0]; String password = (String)arg0[1]; Log.i("Username", username); Log.i("Password", password); String link="http://"; Log.i("link", link); // Prep HTTP for use HttpClient client=new DefaultHttpClient(); HttpPost post = new HttpPost(link); // Prep data for sending to server List<NameValuePair> pairs = new ArrayList<NameValuePair>(); pairs.add(new BasicNameValuePair("username", username)); pairs.add(new BasicNameValuePair("password", password)); post.setEntity(new UrlEncodedFormEntity(pairs)); // Send data to server HttpResponse response = client.execute(post); String responseText = null; // Time to evaluate how server reacted try { // try to get server response responseText = EntityUtils.toString(response.getEntity()); Log.i("Server Response: ", responseText); } catch (Exception e) { // Failed to get server response, log why it failed. e.printStackTrace(); Log.i("Parse Exception", e + ""); } return responseText; } catch(Exception e){ Log.i("exception", "error"); return new String("Exception: " + e.getMessage()); } } @Override protected void onPostExecute(final boolean success) { mAuthTask = null; finish(); if (success) { finish(); Intent myIntent = new Intent(membership.this, membership_memberonly.class); membership.this.startActivity(myIntent); } else { mPasswordView.setError(getString(R.string.error_incorrect_password)); mPasswordView.requestFocus(); } } @Override protected void onCancelled() { mAuthTask = null; } } 

Ну, у вас есть 2 метода doInBackground. Только один из них должен существовать.

Как вы можете получить эти методы переопределения? Вы получили строку ошибок в этом методе переопределения?

  @Override protected String doInBackground(String... arg0) { } 

// здесь вы должны использовать только тип Boolean return, вы не можете использовать String. Иначе вы можете использовать Object вместо String, как показано ниже mothod

 protected String doInBackground(Object... params) { // TODO Auto-generated method stub return null; } 

Удалите этот метод переопределения, если вы не смогли написать надлежащие переопределенные методы, тогда сделайте это;

Щелкните правой кнопкой мыши метод – нажмите «Источник – переопределить / внедрить», затем вы можете получить методы переопределения для вашего метода,

  @Override protected Boolean doInBackground(Void... params) { for (String credential : DUMMY_CREDENTIALS) { String[] pieces = credential.split(":"); if (pieces[0].equals(mEmail)) { // Account exists, return true if the password matches. return pieces[1].equals(mPassword); } } return false; } 

После этого метод должен существовать, тогда вы получите сообщение об ошибке. Также вызовите метод finish () позже в вашем состоянии.

Найдено два doInBackground в вашей asyntask и защищены

Строка doInBackground (String … arg0)

должно быть

Protected String doInBackground (Object … arg0)

Pieces [0] = arg0 [0] .toString ();
Pieces [1] = arg0 [1] .toString ();

Вместо ввода строки.