2014-11-05 35 views
2

我在我的應用程序中使用解析android SDK。這裏是我的登錄活動:com.parse.ParseException:java.lang.IllegalStateException:試圖找到不存在的uuid

public class LoginActivity extends Activity { 

    EditText username, password; 
    Button login; 
    SharedPreferences prefs; 
    ProgressDialog dialog; 

    @Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
     startActivity(new Intent(this, LogSignActivity.class)); 
     finish(); 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.activity_login); 
     dialog = new ProgressDialog(LoginActivity.this); 
     dialog.setCancelable(false); 
     dialog.setMessage("Loading..."); 
     initializeViews(); 
     if (prefs.getBoolean(PreferenceStrings.logged, false)) { 
      username.setText(prefs.getString(PreferenceStrings.uname, "")); 
      password.setText(prefs.getString(PreferenceStrings.pwd, "")); 
      dialog.show(); 
      ParseUser.logInInBackground(username.getText().toString(), password 
        .getText().toString(), new LogInCallback() { 

       @Override 
       public void done(ParseUser user, ParseException e) { 
        dialog.dismiss(); 
        if (e != null) { 
         prefs.edit() 
           .putBoolean(PreferenceStrings.logged, false) 
           .commit(); 
         e.printStackTrace(); 
        } 
        if (user == null) { 
         prefs.edit() 
           .putBoolean(PreferenceStrings.logged, false) 
           .commit(); 
         Toast.makeText(getBaseContext(), "User not found!", 
           Toast.LENGTH_SHORT).show(); 
        } else if (!user.isAuthenticated()) { 
         prefs.edit() 
           .putBoolean(PreferenceStrings.logged, false) 
           .commit(); 
         Toast.makeText(getBaseContext(), 
           "User is not authenticated!", 
           Toast.LENGTH_SHORT).show(); 
        } else { 
         prefs.edit().putBoolean(PreferenceStrings.logged, true) 
           .commit(); 
         prefs.edit() 
           .putString(PreferenceStrings.uname, 
             username.getText().toString()).commit(); 
         prefs.edit() 
           .putString(PreferenceStrings.pwd, 
             password.getText().toString()).commit(); 
         startActivity(new Intent(LoginActivity.this, 
           HomeActivity.class)); 
         finish(); 
        } 
       } 
      }); 
     } 
     TextView back = (TextView) findViewById(R.id.nav_back); 
     back.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       startActivity(new Intent(LoginActivity.this, 
         LogSignActivity.class)); 
       finish(); 
      } 
     }); 
     login.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       if (username.getText().toString().equals("")) { 
        Toast.makeText(getBaseContext(), "Please enter username!", 
          Toast.LENGTH_SHORT).show(); 
       } else if (password.getText().toString().equals("")) { 
        Toast.makeText(getBaseContext(), "Please enter password!", 
          Toast.LENGTH_SHORT).show(); 
       } else { 
        dialog.show(); 
        ParseUser.logInInBackground(username.getText().toString(), 
          password.getText().toString(), new LogInCallback() { 

           @Override 
           public void done(ParseUser user, 
             ParseException e) { 
            dialog.dismiss(); 
            if (e != null) { 
             prefs.edit() 
               .putBoolean(
                 PreferenceStrings.logged, 
                 false).commit(); 
             e.printStackTrace(); 
            } 
            if (user == null) { 
             prefs.edit() 
               .putBoolean(
                 PreferenceStrings.logged, 
                 false).commit(); 
             Toast.makeText(getBaseContext(), 
               "User not found!", 
               Toast.LENGTH_SHORT).show(); 
            } else if (!user.isAuthenticated()) { 
             prefs.edit() 
               .putBoolean(
                 PreferenceStrings.logged, 
                 false).commit(); 
             Toast.makeText(getBaseContext(), 
               "User is not authenticated!", 
               Toast.LENGTH_SHORT).show(); 
            } else { 
             prefs.edit() 
               .putBoolean(
                 PreferenceStrings.logged, 
                 true).commit(); 
             prefs.edit() 
               .putString(
                 PreferenceStrings.uname, 
                 username.getText() 
                   .toString()) 
               .commit(); 
             prefs.edit() 
               .putString(
                 PreferenceStrings.pwd, 
                 password.getText() 
                   .toString()) 
               .commit(); 
             startActivity(new Intent(
               LoginActivity.this, 
               HomeActivity.class)); 
             startActivity(new Intent(
               LoginActivity.this, 
               HomeActivity.class)); 
             finish(); 
            } 
           } 
          }); 

       } 
      } 
     }); 
    } 

    private void initializeViews() { 
     username = (EditText) findViewById(R.id.username); 
     password = (EditText) findViewById(R.id.password); 
     login = (Button) findViewById(R.id.btn_log); 
     prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    } 
    } 

我能夠成功登錄,但有些登錄後,我無法登錄,並從解析返回以下錯誤: enter image description here 任何想法?

回答

1

這是一個已知的bug,並且已經由Parse團隊爲iOS API驗證過(我的預感是它運行的更深,並且是您在Android端看到的相同錯誤)。

您可以更這裏找到: https://developers.facebook.com/bugs/614018488703097/

直到問題解決後,它可能是明智的,關閉本地數據存儲,看看有沒有什麼幫助。

+0

好的,謝謝:) – berserk 2014-12-18 15:18:47