org.greenrobot.greendao.DaoException: Could not init DAOConfig at org.greenrobot.greendao.internal.DaoConfig.(DaoConfig.java:28) at org.greenrobot.greendao.AbstractDaoMaster.registerDaoClass(AbstractDaoMaster.java:1)java
今天升级了一下Android Studio到3.5版本,不混淆的状况下运行app没有问题,混淆以后在使用greendao的地方报错致使应用crash了,查了一下缘由最终致使报错的地方在:bash
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=1; index=9
at org.greenrobot.greendao.internal.DaoConfig.reflectProperties(DaoConfig.java:11)
at org.greenrobot.greendao.internal.DaoConfig.<init>(DaoConfig.java:4)
... 49 more
复制代码
问题是以前就算混淆也运行的很好,为何此次却报错了。看了一下 proguard-rules文件里关于greendao的部分:app
#GreenDao
-keep class org.greenrobot.greendao.**{*;}
-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
public static java.lang.String TABLENAME;
}
-keep class **$Properties
复制代码
发现这一句写的可能有问题-keep class **$Properties,改成spa
-keep class **$Properties{*;}
复制代码
就能够。code
按理来讲前者的写法是错的,为何以前没出现问题呢,而升级Android studio3.5就出问题了,这个后续有时间再来深究。it