java - 在 OrmLite 中找不到私有(private) boolean 值的适当获取方法

标签 java android ormlite

我在 Android 应用程序中使用 OrmLite,但偶尔会发生崩溃,并出现以下错误。看起来它在提示没有找到 getter 方法。

java.lang.RuntimeException: Unable to start activity  ComponentInfo{com.app/com.app.MainActivity_}:  java.lang.IllegalArgumentException: Could not find appropriate get method for  private boolean com.app.model.User.isKeepAlive
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2760)
   at android.app.ActivityThread.access$900(ActivityThread.java:177)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:145)
   at android.app.ActivityThread.main(ActivityThread.java:5944)
   at java.lang.reflect.Method.invoke(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184)
Caused by: java.lang.IllegalArgumentException: Could not find appropriate get method for private boolean com.app.model.User.isKeepAlive
   at com.j256.ormlite.field.DatabaseFieldConfig.findGetMethod(DatabaseFieldConfig.java:548)
   at com.j256.ormlite.field.FieldType.(FieldType.java:236)
   at com.j256.ormlite.table.DatabaseTableConfig.convertFieldConfigs(DatabaseTableConfig.java:236)
   at com.j256.ormlite.table.DatabaseTableConfig.extractFieldTypes(DatabaseTableConfig.java:101)
   at com.j256.ormlite.dao.BaseDaoImpl.initialize(BaseDaoImpl.java:153)
   at com.j256.ormlite.dao.BaseDaoImpl.(BaseDaoImpl.java:128)
   at com.j256.ormlite.dao.BaseDaoImpl.(BaseDaoImpl.java:119)
   at com.j256.ormlite.dao.BaseDaoImpl$5.(BaseDaoImpl.java:921)
   at com.j256.ormlite.dao.BaseDaoImpl.createDao(BaseDaoImpl.java:921)
   at com.j256.ormlite.dao.DaoManager.createDao(DaoManager.java:72)
   at com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper.getDao(OrmLiteSqliteOpenHelper.java:279)
   at com.app.utility.DatabaseHelper.getUserDao(DatabaseHelper.java:126)
   at com.app.controller.UserController.getLoggedInUser(UserController.java:318)
   at com.app.controller.UserController.isLoggedIn(UserController.java:304)

奇怪的是我在实体类中定义了一个 get 方法,如下所示:

@DatabaseField(useGetSet = true)
private boolean isKeepAlive;

/**
 * @return the isKeepAlive
 */
public boolean getIsKeepAlive() {
    return isKeepAlive;
}

/**
 * @param isKeepAliveSet the isKeepAliveSet to set
 */
public void setIsKeepAlive(boolean isKeepAlive) {
    this.isKeepAlive = isKeepAlive;
}

最佳答案

感谢@Gray 的建议。更新我的方法并使用主干中的最新方法似乎已经解决了我的问题。

关于java - 在 OrmLite 中找不到私有(private) boolean 值的适当获取方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32205556/

相关文章:

java - ORMLite 外国集合 : Must use ClosableIterator?

android - ormlite:sql语句不像抛出异常

使用反射调用 PumpEvents 时出现 java.lang.illegalArgumentException

android - 更新 Facebook APK 后,FACEBOOK/TWITTER 登录不再适用于 Android 应用程序(登录立即消失!)

android - Canvas 线故障

android - 从列中具有逗号分隔值的 Sqlite 中获取数据

java - 原始查询无法将 BLOB 转换为字符串以选择 String[] 的列

java - 如何禁用 Jackson 从 epoch millis 反序列化 Instant?

java - GWT 吉利德错误

java - 为什么我无法在 Java 中将 Vector<Vector<Number>> 转换为 AbstractList<AbstractList<Number>>?