1

I'm just new in Realm Database ... this is app for write String in realm DB and read it ...

when i ran my app it's show me it has stoped

my error in directory of RealmConfiguration as showed in logcat ...

this is my code :

ObjectRealm Class

public class ObjectRealm extends RealmObject { @PrimaryKey private int id; private String myTitle ; public ObjectRealm() { } public ObjectRealm(int id, String myTitle) { this.id = id; this.myTitle = myTitle; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getMyTitle() { return myTitle; } public void setMyTitle(String myTitle) { this.myTitle = myTitle; } @Override public String toString() { return "ObjectRealm{" + "id=" + id + ", myTitle='" + myTitle + '\'' + '}'; } } 

BaseApplication class

public class BaseApplication extends Application { @Override public void onCreate() { super.onCreate(); String rootPath = Environment.getExternalStorageDirectory().getAbsolutePath(); Realm.init(this); RealmConfiguration config = new RealmConfiguration.Builder() .name("myRealm") .directory(new File(rootPath + "/in MyFile/")) .build(); Realm realm = Realm.getInstance(config); } } 

MainActivity

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Realm realm = Realm.getDefaultInstance(); realm.beginTransaction(); for(int i =0 ;i<5;i++){ ObjectRealm person = new ObjectRealm(i+1 ,"Title number : " + i+1); } realm.commitTransaction(); showMe(); } private void showMe() { Realm realm = Realm.getDefaultInstance(); RealmQuery<ObjectRealm> query = realm.where(ObjectRealm.class); RealmResults<ObjectRealm> result = query.findAll(); for (ObjectRealm e : result) { Log.d("asd", "showMe: " + e.toString()); } } } 

my manifest file

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.lenovo.tryrealm"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <application android:name=".BaseApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 

I added permission of write and read external storage and name of BaseApplication

why it's not working ? where's my error ?

when i changed the code in

BaseApplication class

like this

public class BaseApplication extends Application { @Override public void onCreate() { super.onCreate(); RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(this) .build(); Realm.setDefaultConfiguration(realmConfiguration); } } 

I faced error like this

error: Builder(Context) is not public in Builder; cannot be accessed from outside package RealmConfiguration realmConfig = new RealmConfiguration.Builder(this).build(); 

1 Answer 1

2
@Override public void onCreate() { super.onCreate(); RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(this) .build(); Realm.setDefaultConfiguration(realmConfiguration); } 

should be

@Override public void onCreate() { super.onCreate(); Realm.init(this); RealmConfiguration realmConfiguration = new RealmConfiguration.Builder() .build(); Realm.setDefaultConfiguration(realmConfiguration); } 

Since Realm 2.0.0 and newer

Sign up to request clarification or add additional context in comments.

3 Comments

i did like this but in logcat it said there is error in line of " realm = Realm.getDefaultInstance(); " in MainActivity
this my error after delet "realm = Realm.getDefaultInstance(); " ... the error ` Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void io.realm.Realm.beginTransaction()' on a null object reference`
you're calling realm.beginTransaction() without having called Realm.getDefaultInstance() first. Read the documentation for some guidance.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.