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();