Object is not part of the schema for this Realm

13,525

Solution 1

My problem was solved by declaring apply plugin: 'realm-android' after all other plugins.

App level Gradle

apply plugin: 'android-apt'
apply plugin: 'realm-android'

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

Solution 2

had the same problem while using it along side with retrolambda and android-apt. changing the order of plugins in app level build.gradle file worked for me :

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'realm-android'

Github issue : https://github.com/realm/realm-java/issues/3783#issuecomment-260578984

Solution 3

In my case I was need to paste kotlin-kapt to app.gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt' <<<<<<<<<<the 1st row<<<<<<<<<
apply plugin: 'realm-android' <<<<<the second row<<<<<

I spent 6 hours to solve this problem. And now it works. And how was written above - realm-android should be added to the end of all plugins!

Solution 4

Are you using the @RealmClass annotation? If you are using annotations, make sure you have annotation processing enabled in your Android studio settings.

Solution 5

Try this: Android Studio -> Build -> Rebuild & Clean Project

Share:
13,525
Riyan Fransen
Author by

Riyan Fransen

Junior iOS Developer @ Appwise.

Updated on June 06, 2022

Comments

  • Riyan Fransen
    Riyan Fransen almost 2 years

    As soon as I try to get my object from Realm database, the app crashed and I get this error:

    java.lang.RuntimeException: Unable to start activity 
          ComponentInfo{com.repdev.realtimedelijn/com.repdev.realtimedelijn.activity.MainActivity}: 
        java.lang.IllegalArgumentException: Haltes is not part of the schema for this Realm
    

    This is my Activity were it happens

       @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Fabric.with(this, new Crashlytics());
        setContentView(R.layout.activity_main);
        Context context = this;
        View view = this.getWindow().getDecorView();
    
        realm = Realm.getInstance(getRealmConfiguration());
        RealmResults<Haltes> haltes = realm
                .where(Haltes.class)
                .findAll();
        HaltesRecyclerViewAdapter haltesRecyclerViewAdapter =
                new HaltesRecyclerViewAdapter(this, haltes, true, true);
        RealmRecyclerView realmRecyclerView =
                (RealmRecyclerView) findViewById(R.id.realm_recycler_view);
        realmRecyclerView.setAdapter(haltesRecyclerViewAdapter);
    }
    

    and here is the model

    Someone an idea how to fix it? public class Haltes implements RealmModel {

    @PrimaryKey
    private long id;
    
    private String halteNaam;
    private String halteNummer;
    
    public long getId() {
    
        return id;
    }
    
    public void setId(long id) {
    
        this.id = id;
    }
    
    public String getHalteNaam() {
    
        return halteNaam;
    }
    
    public void setHalteNaam(String halteNaam) {
    
        this.halteNaam = halteNaam;
    }
    
    public  String getHalteNummer() {
    
        return halteNummer;
    }
    
    public void setHalteNummer(String halteNummer) {
    
        this.halteNummer = halteNummer;
    }
    

    }