android - 带有混淆器的 GreenDAO : NoSuchFieldException: TABLENAME

标签 android greendao

当我开始为 Android 使用 greenDAO 时,这个问题已经发生了几个月。 在我的应用程序中,我有 proguard 并且已经进行了 greenDAO 常见问题解答中建议的更改

-keepclassmembers class * extends de.greenrobot.dao.AbstractDao { public static java.lang.String TABLENAME; } -保持类 **$Properties

此外,我已经尝试了在此 Google group discussion 中发布的一些替代方案

但是我还是遇到这样的崩溃

Caused by: java.lang.NoSuchFieldException: TABLENAME
   at java.lang.Class.getField(Class.java:1104)
   at de.greenrobot.dao.internal.DaoConfig.(DaoConfig.java:56)
   at de.greenrobot.dao.AbstractDaoMaster.registerDaoClass(AbstractDaoMaster.java:44)

有趣的是,这种崩溃只发生在三星设备上。最常见于 Lollipop。

有人遇到和我一样的问题吗?

最佳答案

1.

-libraryjars libs/greendao-1.3.7.jar
-keep class de.greenrobot.dao.** {*;}
 #保持greenDao的方法不被混淆
-keepclassmembers class * extends de.greenrobot.dao.AbstractDao {
  #用来保持生成的表名不被混淆     
 public static java.lang.String TABLENAME; } 
 -keep class **$Properties

2。也许你还没有添加一些通用的保留规则

关于android - 带有混淆器的 GreenDAO : NoSuchFieldException: TABLENAME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33260226/

相关文章:

java - 线程仅在第二次运行时工作

android - 通过 Android Media Store 将图像存储在新文件夹中

android - 如何使用正则表达式查找输入文本是否为 url

android - 如何在 GreenDAO 中映射 Enum

java - 如何在 greenDAO 中使用 OR 查询?

android - greenDAO 字符串长度约束

android - 多节点添加、删除的Firebase事务

android - 当警报管理器启动服务时,如何使用 Intent 更新发送到服务的数据?

android - 如何使用 QueryBuilder 获取 GreenDAO 中列的最大值?

android - greenDAO:未找到 ftl 模板