2016-04-19 12 views
0

Ich verfolge einen Kurs auf Udemy und ich bin in einem Abschnitt, wo wir einen anonymen Benutzer erstellt und nach einer Aktivität versucht, den AnonUsername in eine Put-Methode in ParseObject festzulegen. Ich erhalte die oben genannte Störung im Titel, wenn ich benutze:verursacht durch: java.lang.IllegalArgumentException: Wert darf nicht null sein. Wenn ich Daten in ParseObject setze

put("riderUsername", ParseObject.getCurrentUser().getUsername()); 

aber ich habe die „com.parse.ParseUser ....“ wenn ich benutze:

put("riderUsername", ParseObject.getCurrentUser()); 

Dies ist mein Code für wenn ich eine Taste drücken, diese zu senden Parsen:

public void toggleSearch(View view){ 

    ParseObject request = new ParseObject("Requests"); 
    request.put("requestUsername", ParseUser.getCurrentUser().toString()); 

    ParseACL acl = new ParseACL(); 
    acl.setPublicWriteAccess(true); 
    acl.setPublicReadAccess(true); 

    request.setACL(acl); 

    request.saveInBackground(new SaveCallback() { 
     @Override 
     public void done(ParseException e) { 
      if(e == null){ 
       driverStatus.setText("Searching Drivers..."); 
      } else { 
       driverStatus.setText("Error"); 
       e.printStackTrace(); 
      } 
     } 
    }); 

} 

Und das ist, wo ich die Anon Benutzer in der ersten Aktivität erstellt:

if(ParseUser.getCurrentUser() == null) { 
     ParseAnonymousUtils.logIn(new LogInCallback() { 
      @Override 
      public void done(ParseUser user, ParseException e) { 
       if (e == null) { 
        Log.i("App Data", "Logged In"); 
       } else { 
        Log.i("App Data", "Not Logged In"); 
       } 
      } 
     }); 
    } 

Versuchte Suche, konnte aber nichts finden. Ich hoffe nur, dass irgendjemand anderes weiß, dass ich falsch liege. Vielen Dank.

Antwort

0

Wenn ich richtig verstehe, Sie

put("riderUsername", ParseObject.getCurrentUser()); 

ohne Probleme tun können, aber dieser scheitert und wirft die Ausnahme:

put("riderUsername", ParseObject.getCurrentUser().getUsername()); 

Natürlich ParseObject.getCurrentUser() ist nicht null, weil Sie können es speichern und auch, weil ParseObject.getCurrentUser().getUsername() würde java.lang.NullPointerException

werfen Also, die einzige Möglichkeit ist, dass der Benutzername in der aktuellen gespeichert Benutzer ist null.

Überprüfen Sie, ob der Benutzername in Ihrem Anmelde-Callback für den Parameter ParseUser user nicht null ist. Sie können auch diese Methode verwenden:

ParseUser.getUsername() 
+0

Danke für die schnelle Antwort Jorge. Die Sache mit dem Einrichten des AnonUser ist, dass die Parse-Klasse den Benutzernamen selbst setzt. Also beim Einchecken in der Tabelle sein Jargon, der in Ordnung ist, aber nicht zurückgegeben wird, wenn Sie versuchen, auf den aktuellen Benutzer zuzugreifen. Ich denke, ich werde einfach das Login einrichten und mich normal anmelden, da der Trainer es nicht hinzugefügt hat. – SmiffyKmc

Verwandte Themen