在createObject上获取错误

时间:2017-03-05 17:58:39

标签: realm

我正在

StartSensor Attempt to invoke virtual method 'void io.realm.ProxyState.setConstructionFinished()' on a null object reference

我尝试在应用程序类中使用primarykey创建一个新对象。 primarykeyFactory工作时将新键设置为" 1"此时数据库是空的。

public class SensorRecord extends MainApplication {
private final static String TAG = SensorRecord.class.getSimpleName();

private Realm mRealm;

public SensorRecord() {
    Realm.init(this);
    mRealm = getInstance(getRealmConfig());
}

public void StartSensor(long startTime) {
    long newprimekey = PrimaryKeyFactory.getInstance().nextKey(SensorData.class);
    try {
        mRealm.beginTransaction();
        SensorData mSensorData = mRealm.createObject(SensorData.class, newprimekey);
        mSensorData.setstarted_at(startTime);
        mRealm.commitTransaction();
        mRealm.close();
    } catch (Exception e) {
        Log.v(TAG, "StartSensor " + e.getMessage());
    }
}}

我的主要应用程序类,它启动领域配置

public class MainApplication extends RealmBaseApplication {
private final static String TAG = MainApplication.class.getSimpleName();

Realm mRealm;

@Override
public void onCreate() {
    super.onCreate();
    Realm.init(this);
    mRealm = getInstance(getRealmConfig());
    initializePrimaryKeyFactory();
}

public void initializePrimaryKeyFactory() {
    try {
        Log.v(TAG, "Start PrimaryKeyFactory ");
        PrimaryKeyFactory.getInstance().initialize(mRealm);
    } catch (Exception e) {
        Log.v(TAG, "initializePrimaryKeyFactory " + e.getMessage());
    }
}}

和我的领域配置类

public abstract class RealmBaseApplication extends Application {
private RealmConfiguration realmConfiguration;

protected RealmConfiguration getRealmConfig() {
    if (realmConfiguration == null) {
        realmConfiguration = new RealmConfiguration
                .Builder()
                .deleteRealmIfMigrationNeeded()
                .build();
    }
    Realm.setDefaultConfiguration(realmConfiguration);
    return realmConfiguration;
}

protected void resetRealm() {
    Realm.deleteRealm(getRealmConfig());
}}
亲切的问候 维多利亚

1 个答案:

答案 0 :(得分:1)

确定我自己。今晚加了奶油刀。并与我添加apt到我的build.gradle ...我删除

        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
        apply plugin: 'com.neenbedankt.android-apt' 

并替换

 apt 'com.jakewharton:butterknife-compiler:8.5.1' 

annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'