Я использую Parse в качестве моего бэкенда для своего приложения для Android. У меня есть отчет о сбоях только для некоторых устройств Android, когда я пытаюсь создать объект User. Ошибка при сбое:
Caused by: java.lang.IllegalArgumentException:
You must register this ParseObject subclass before instantiating it.
at com.parse.ParseObject.<init>(ParseObject.java:184)
Устройства, которые отправили отчет о сбое:
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
Это очень странно, поскольку в настоящее время я тестировал свой код на Samsung Note 4, Galaxy S4, S5 и Nexus 5 без каких-либо проблем. Я не уверен, почему Parse просит меня подкласс из ниоткуда, поскольку я не пытаюсь использовать функциональные возможности подкласса, предлагаемые Parse. Опять же, я тестировал этот код на других устройствах без каких-либо проблем.
Может кто-нибудь, пожалуйста, скажите мне, как это исправить? Я включил код ниже, где я создаю пользователя, и он сработает.
Спасибо!
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);
}
}
});