2017-03-05 29 views
0

得到錯誤我得到上的CreateObject

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

確定由我自己定。今晚加了刀油。並與我容易添加到我的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'