code it

Martins Tech Blog

Proguard und Realm.IO

In einem Projekt habe ich mal Realm ausprobiert. Dabei handelt es sich um eine alternative Datenbank, die verspricht die Wiederverwendung von Code aufgrund gleicher Model-Klassen sowohl in IOs als auch in Android hoch zu halten.

Detaillierte Erfahrungsberichte dazu kommen sicher in einem späteren Post.

Zunächst gab es eine kleiner Überraschung nach der Aktivierung von Proguard. Der Hersteller gibt folgende Konfiguration an:
-keep class io.realm.annotations.RealmModule
-keep @io.realm.annotations.RealmModule class *
-dontwarn javax.**
-dontwarn io.realm.**
Allerdings erreichte mich dann bei der Ausführung folgende Exception:
java.lang.IllegalArgumentException: class io.realm.internal.d declares multiple JSON fields named c
    at a.a.a.b.a.q.a(Unknown Source)
    at a.a.a.b.a.q.a(Unknown Source)
    at a.a.a.j.a(Unknown Source)
     .....
Heißt, die korrekte Proguard-Konfiguration sollte dieses Package wohl besser auch von der Obfuskierung ausschließen:
##---------------Begin: proguard configuration for Realm  ---------- 
-keep class io.realm.annotations.RealmModule -keep @io.realm.annotations.RealmModule class * -keep class io.realm.internal.** { *; } -dontwarn javax.** -dontwarn io.realm.** ##---------------End: proguard configuration for Realm ----------