DaoConfig使用Android 5.0在Samsung Devices上使用greendao初始化失败

Rob*_*ert 5 android samsung-mobile greendao nosuchfieldexception android-5.0-lollipop

Crashlytics报道了greendao的大量崩溃事件:

> Caused by de.greenrobot.dao.DaoException: Could not init DAOConfig
>        at de.greenrobot.dao.internal.DaoConfig.<init>(DaoConfig.java:94)
>        at de.greenrobot.dao.AbstractDaoMaster.registerDaoClass(AbstractDaoMaster.java:44)
> ... Caused by java.lang.NoSuchFieldException: TABLENAME
>        at java.lang.Class.getField(Class.java:1104)
>        at de.greenrobot.dao.internal.DaoConfig.<init>(DaoConfig.java:56)
>        at de.greenrobot.dao.AbstractDaoMaster.registerDaoClass(AbstractDaoMaster.java:44)
Run Code Online (Sandbox Code Playgroud)

似乎只有三星设备(SM-G900V,SM-900A,SM-900P,SM-870A,SCH-545等)全部运行Android 5.0 Lollipop.

根据我的研究,他们的设备上似乎有一个三星类加载器实现问题导致了这个问题.人们在此问题中提到可能的加载程序是一个问题:https: //code.google.com/p/gmaps-api-issues/issues/detail?id = 8314

人们建议在Proguard中添加keep规则,但我们在应用程序中根本没有使用Proguard.我们确实启用了多索引.

有人有修复或解决方法的建议吗?

san*_*vys 0

尝试将其添加到您的 proguard 规则中

-keepclassmembers class * extends de.greenrobot.dao.AbstractDao {
    public static java.lang.String TABLENAME;
}
-keep class **$Properties
Run Code Online (Sandbox Code Playgroud)