Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Realm.getInstance(上下文)抛出注释处理器可能尚未执行_Android_Eclipse_Exception_Annotations_Realm - Fatal编程技术网

Android Realm.getInstance(上下文)抛出注释处理器可能尚未执行

Android Realm.getInstance(上下文)抛出注释处理器可能尚未执行,android,eclipse,exception,annotations,realm,Android,Eclipse,Exception,Annotations,Realm,当尝试获取领域实例时,我得到了以下异常- io.realm.exceptions.RealmException: Could not find the generated io.realm.HallOfFameHolderRealmProxy class: Annotation processor may not have been executed. 我的班级代码是- @RealmClass 公共类HallOfFameHolder扩展RealmObject{ private static

当尝试获取领域实例时,我得到了以下异常-

io.realm.exceptions.RealmException: Could not find the generated io.realm.HallOfFameHolderRealmProxy class: Annotation processor may not have been executed.
我的班级代码是-

@RealmClass
公共类HallOfFameHolder扩展RealmObject{

private static final String TAG = "HallOfFameHolder";

private int mId;
private String mTrackName;
private Date mDateTime;
private String mTimeStr;
private String mDateStr;
private long mTotalRunTime;
private String mTotalRunTimeStr;
private int mNumOfLaps;
private long mBestLapTime;
private String mBestLapTimeStr;
private boolean mDryTrack;
private float mGearRatio;
private int mSrJetting;

@Ignore
private int mSessionId;

public void setData(String trackName, Date dateTime, String timeStr,
        String dateStr, long totalRunTime, String totalRunTimeStr,
        int numOfLaps, long bestLapTime, String bestLapTimeStr,
        boolean dryTrack, float gearRatio, int srJetting) {
    Log.d(TAG, "setData");
    mTrackName = trackName;
    mDateTime = dateTime;
    mTimeStr = timeStr;
    mDateStr = dateStr;
    mTotalRunTime = totalRunTime;
    mTotalRunTimeStr = totalRunTimeStr;
    mNumOfLaps = numOfLaps;
    mBestLapTime = bestLapTime;
    mBestLapTimeStr = bestLapTimeStr;
    mDryTrack = dryTrack;
    mGearRatio = gearRatio;
    mSrJetting = srJetting;
}

public void setData(int id, String trackName, Date dateTime,
        String timeStr, String dateStr, long totalRunTime,
        String totalRunTimeStr, int numOfLaps, long bestLapTime,
        String bestLapTimeStr, boolean dryTrack, float gearRatio,
        int srJetting) {
    Log.d(TAG, "setData");
    mTrackName = trackName;
    mDateTime = dateTime;
    mTimeStr = timeStr;
    mDateStr = dateStr;
    mTotalRunTime = totalRunTime;
    mTotalRunTimeStr = totalRunTimeStr;
    mNumOfLaps = numOfLaps;
    mBestLapTime = bestLapTime;
    mBestLapTimeStr = bestLapTimeStr;
    mDryTrack = dryTrack;
    mGearRatio = gearRatio;
    mSrJetting = srJetting;
    mId = id;
}   

public int getmId() {
    return mId;
}

public void setmId(int mId) {
    this.mId = mId;
}

public String getmTrackName() {
    return mTrackName;
}

public void setmTrackName(String mTrackName) {
    this.mTrackName = mTrackName;
}

public Date getmDateTime() {
    return mDateTime;
}

public void setmDateTime(Date mDateTime) {
    this.mDateTime = mDateTime;
}

public String getmTimeStr() {
    return mTimeStr;
}

public void setmTimeStr(String mTimeStr) {
    this.mTimeStr = mTimeStr;
}

public String getmDateStr() {
    return mDateStr;
}

public void setmDateStr(String mDateStr) {
    this.mDateStr = mDateStr;
}

public long getmTotalRunTime() {
    return mTotalRunTime;
}

public void setmTotalRunTime(long mTotalRunTime) {
    this.mTotalRunTime = mTotalRunTime;
}

public String getmTotalRunTimeStr() {
    return mTotalRunTimeStr;
}

public void setmTotalRunTimeStr(String mTotalRunTimeStr) {
    this.mTotalRunTimeStr = mTotalRunTimeStr;
}

public int getmNumOfLaps() {
    return mNumOfLaps;
}

public void setmNumOfLaps(int mNumOfLaps) {
    this.mNumOfLaps = mNumOfLaps;
}

public long getmBestLapTime() {
    return mBestLapTime;
}

public void setmBestLapTime(long mBestLapTime) {
    this.mBestLapTime = mBestLapTime;
}

public String getmBestLapTimeStr() {
    return mBestLapTimeStr;
}

public void setmBestLapTimeStr(String mBestLapTimeStr) {
    this.mBestLapTimeStr = mBestLapTimeStr;
}

public boolean ismDryTrack() {
    return mDryTrack;
}

public void setmDryTrack(boolean mDryTrack) {
    this.mDryTrack = mDryTrack;
}

public float getmGearRatio() {
    return mGearRatio;
}

public void setmGearRatio(float mGearRatio) {
    this.mGearRatio = mGearRatio;
}

public int getmSrJetting() {
    return mSrJetting;
}

public void setmSrJetting(int mSrJetting) {
    this.mSrJetting = mSrJetting;
}


// DO NOT Delete the next 2 methods
public int getmSessionId() {
    return mSessionId;
}

public void setmSessionId(int sessionId) {
    mSessionId = sessionId;
}   
}

我正在使用Eclipse和realm-0.78.0.jar。
如何解决这个问题?

我认为这与Proguard有关


进行这些更改是否解决了问题?

您正在模型类中定义自定义方法setData,而Realm当前不支持该方法。我们正在研究允许这种情况的方法,同时不允许开发人员自取灭亡。

您使用的是什么版本的JVM?将@RealmClass注释添加到模型类中是否有帮助?Im使用:java版本1.8.0_31 JavaTM SE运行时环境构建1.8.0_31-b13 java HotSpotTM 64位服务器VM构建25.31-b07,混合模式并使用-@RealmClass公共类HallOfFameHolder扩展RealmObject{你的setData方法应该使注释处理器失败。你有任何生成过程的日志吗?setData…方法应该有什么注释?setter不应该有任何数据,但是如果有任何setter未与字段关联,注释处理器应该失败。嗯…我最初尝试实现将RealmObject添加到我的项目中。真正帮助我的是使RealmObject最简单的子类成为可能,然后慢慢添加内容,使其符合我的规范。这帮助我了解了Realm的怪癖。文档仍然缺少很多,因为它仍然处于测试阶段。祝你好运!
ProGuard
Realm generates a proxy class for each RealmObject at compile time. To ensure that these classes can be found after running an obufuscation and static analysis tool like ProGuard add the configuration below to your ProGuard configuration file.

-keepnames public class * extends io.realm.RealmObject
-keep class io.realm.** { *; }
-dontwarn javax.**
-dontwarn io.realm.**