2015-10-21 16 views
1

當我開始使用Android的greenDAO時,這個問題已經發生了幾個月。 在我的應用我有proguard的和已經取得的greenDAO FAQ帶有proguard的GreenDAO:NoSuchFieldException:TABLENAME

-keepclassmembers class * extends de.greenrobot.dao.AbstractDao { public static java.lang.String TABLENAME; } -keep class **$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) 

有趣的一點是,這種崩潰只發生在三星設備。最常見的是棒棒糖。

是否有人與我有同樣的問題?

+0

如果使用GreenDAO 3,那麼你必須用'org.greenrobot'替換'de.greenrobot'。 –

回答

3

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.也許ü哈文特添加一些常用的守規則

+0

其實我也試過這些變化,因爲他們在我提到的Google小組討論中提出過...... –

+0

一些常見的規則 –