私はRealmデータベースでアプリケーションを開発しています。私はそのアプリを開発して成功しましたが、今日は別の部分を追加しました。その間、私はオブジェクト拡張RealmObjectを変更する必要がありました。その後、私はエラーが発生し、その変更を元に戻します。しかしその後も同じエラーが何度も繰り返されています。 、PID com.foxastudios.stopnosocomials:26320 java.lang.NullPointerExceptionがここに私のコードです:AndroidでRealmオブジェクトを保存中にエラーが発生しました
private String createObserver() {
final Observer observer = new Observer();
Log.d("UUID",observer.getUuid());
observer.setObserver_id(getNewObserverID());
observer.setDevice_id(DEVICE_ID);
observer.setName(userName.getText().toString());
observer.setPhone(userPhone.getText().toString());
observer.setCategory(userCategory.getSelectedItem().toString());
observer.setHospital(userHospital.getSelectedItem().toString());
observer.setSection(userSection.getSelectedItem().toString());
observer.setUpdated_date(DATE);
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.copyToRealmOrUpdate(observer);
}
});
return observer.getUuid();
}
そして、ここで私が取得していますエラー:
致命的な例外:メイン プロセス: io.realm.ObserverRealmProxy.realmSet $のUUIDでヌル オブジェクト参照 (ObserverRealmProxy.java:239に 'io.realm.BaseRealm io.realm.ProxyState.getRealm $レルム()' 仮想メソッドを呼び出す試み) でcom.foxastudios.stopnosocomials.models.Observer.setUuid(Observer.java:107) com.foxastudios.stopnosocomials.models.Observerで。(Observer.java:26) io.realm.ObserverRealmProxyました。 (ObserverRealmProxy.java:0) io.realm.Realm.createObjectでio.realm.BaseRealm.getでio.realm.DefaultRealmModuleMediator.newInstance(DefaultRealmModuleMediator.java:145) (BaseRealm.java:603) ( でRealm.java:709) at io.realm.ObserverRealmProxy.copy(ObserverRealmProxy.java:626) at io.realm.ObserverRealmProxy.copyOrUpdate io.realm.Realm.copyOrUpdate(Realm.java:1272)で io.realm.DefaultRealmModuleMediator.copyOrUpdate(DefaultRealmModuleMediator.java:175)で(ObserverRealmProxy.java:616) でio.realm.Realm.executeTransactionで com.foxastudios.stopnosocomials.SessionActivity $ 3.execute(SessionActivity.java:143) (Realm.java:1065)でio.realm.Realm.copyToRealmOrUpdate(Realm.java:747) at com.foxastudios.stopnosocomials.SessionActivity.createObserver(SessionActivity.java:140) at com.foxastudios.stopnosocomials.SessionActivity.access $ 300(SessionActivity.java:29) の com.foxastudios.stopnosocomials.SessionActivity $ 2.onClick(SessionActivity.java:101) android.view.View.performClick(View。 java:4756) android.view.View $ PerformClick.run(View.java:19749) (android.os.Handler.handleCallback(Handler.java:739)) (android.os.Handler.dispatchMessage(Handler。 java:95) とandroid.os.Looper.loop(Looper.java:135) とandroid.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(ネイティブメソッド com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:899)com.android.internalで でjava.lang.reflect.Method.invoke(Method.java:372) で) 。 os.ZygoteInit.main(ZygoteInit。java:694)
Observerオブジェクトのnull値が何回もチェックされています。しかし、すべての値が正しく、例外なくなるまで:レルムオブジェクトのデフォルトコンストラクタが空でなければなりません
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.copyToRealmOrUpdate(observer);
}
});
レルム内でマイグレーションを実装しましたか? –
いいえ前のデータ構造に戻しました。以前のデータベースを持っていない新しいデバイスでも、私はそのエラーを受けました。 –
あなたはあなたのUuidをどこで設定しましたか? Observerオブジェクトコンストラクタの –