Search code examples
javaandroidnullpointerexceptionrealm

Realm Insert NullPointerException


While inserting List to Realm NullPointerException thrown. Please help me anyone.

Can you suggest me for best practice in Realm DB Management in Android

My Code:

public class DrinksFragment
        extends Fragment {

    private Realm realm;

    @Override
    public View onCreateView(
            LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_drinks, container, false);
        Realm.init(getActivity());
        realm = Realm.getDefaultInstance();
        return view;
    }

    public boolean drinksToDB(final List<ProductModel> productModel) {
        realm.executeTransactionAsync(new Realm.Transaction() {
            @Override
            public void execute(Realm bgrealm) {
                RealmList<ProductModel> realproductList = new RealmList<>();
                realproductList.addAll(productModel);
            }
        }, new Realm.Transaction.OnSuccess() {
            @Override
            public void onSuccess() {
                Log.d("REALM_DB_INSERT", "Data Inserted");
            }
        }, new Realm.Transaction.OnError() {
            @Override
            public void onError(Throwable error) {
                Log.d("REALM_DB_INSERT", error.getMessage());
            }
        });

        return true;
    }
}

Solution

  • I advice you to do something like this:

    First of all init Realm immediately only once when you open your app:

    public class StartApplication
                extends Application {
    
            @Override
            public void onCreate() {
                super.onCreate();
                Realm.init(getApplicationContext());
            }
    }
    

    And then you can get the realm object in this way everywhere:

    Realm realm = Realm.getDefaultInstance();