5

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)

すべて Android 5.0 Lollipop を実行している Samsung デバイス (SM-G900V、SM-900A、SM-900P、SM-870A、SCH-545 など) だけのようです。

私の調査によると、これを引き起こしているデバイスに Samsung クラス ローダーの実装の問題があるようです。人々は、この問題の問題としてローダーの可能性について言及しました: https://code.google.com/p/gmaps-api-issues/issues/detail?id=8314

キープ ルールを Proguard に追加することを提案する人もいますが、アプリケーションでは Proguard をまったく使用していません。ただし、マルチデックスは有効になっています。

修正または回避策の提案はありますか?

4

2 に答える 2

0

これをproguard-rulesに追加してみてください

-keepclassmembers class * extends de.greenrobot.dao.AbstractDao {
    public static java.lang.String TABLENAME;
}
-keep class **$Properties
于 2016-01-04T10:22:14.147 に答える