Sto utilizzando Parse come backend per la mia app Android. Ho un rapporto di arresto anomalo solo per alcuni dispositivi Android quando provo a creare un oggetto Utente. L'errore sul crollo è:Errore anomalo durante la creazione dell'utente
Caused by: java.lang.IllegalArgumentException:
You must register this ParseObject subclass before instantiating it.
at com.parse.ParseObject.<init>(ParseObject.java:184)
I dispositivi che hanno presentato la relazione crash sono:
HTC Desire 510 (htc_a11ul) 2 33.3% Android 4.4
Xperia E3 (D2203) 1 16.7% Android 4.4
Galaxy S4 (jflte) 1 16.7% Android 4.4
Galaxy S5 (klte) 1 16.7% Android 4.4
Ciò è estremamente strano come ho attualmente testato il mio codice a Samsung Note 4, Galaxy S4, S5 e Nexus 5 senza problemi. Non sono sicuro del motivo per cui Parse mi stia chiedendo di creare una sottoclasse dal nulla in quanto non sto cercando di utilizzare la funzionalità sottoclasse offerta da Parse. Ancora una volta, ho testato questo codice su altri dispositivi senza problemi.
Qualcuno può dirmi come risolvere questo problema? Ho incluso il codice qui sotto dove creo l'utente e si blocca.
Grazie!
Parse.initialize(this, "XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXX");
ParseUser user = new ParseUser();
user.setUsername(email);
user.setPassword(confirmPassword);
user.setEmail(email);
user.put("deviceID", deviceID);
user.put("name", fullName);
progress = new ProgressDialog(Register.this);
progress.setMessage("Creating Account... Please Wait");
progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progress.setIndeterminate(true);
progress.setCanceledOnTouchOutside(false);
progress.setCancelable(false);
progress.show();
user.signUpInBackground(new SignUpCallback() {
public void done(ParseException e) {
if (e == null) {
// Hooray! Let them use the app now.
Intent i = new Intent(Register.this, DeviceSettingsIntro.class);
startActivity(i);
progress.hide();
btnRegister.setEnabled(true);
} else {
// Sign up didn't succeed. Look at the ParseException
// to figure out what went wrong
progress.hide();
checkParseError(e);
btnRegister.setEnabled(true);
}
}
});
indovinare. alcuni ambienti di rete introducono un problema asincrono in cui init non restituisce e in qualche modo la seguente espressione cerca di ottenere un nuovo OBJ parse_user. che potrebbe causare l'errore msg .. Forse provare/prendere un timeout o qualcosa del genere ... –
@RobertRowntree Ciao Robert, grazie per la risposta. Ho aggiunto altro codice che mostra come effettivamente invio l'oggetto User a Parse. In termini di ciò che hai suggerito, non dovrebbe essere il caso in quanto dovrebbe rilevare l'errore in base al mio codice ... corretto? Grazie ancora – Teddy13
Hai qualche classe che estende ParseObject o ParseUser? –