使用Proguard将Realm从2.3.1升级到3.2.1

时间:2017-05-22 21:20:09

标签: realm

我刚刚将Realm Java从2.3.1升级到3.2.1,这导致了deobsfucation的问题。我开始得到:

IllegalArgumentException:查询无效:此架构中找不到表'PlaceRealm'。

如果我在升级之前添加以下proguard规则,则没有问题。

-keepnames public class * extends io.realm.RealmObject
-keep @io.realm.annotations.RealmModule class *

在2.3.1和3.2.1文档中,它表示proguard配置是自动排序的。

我不完全理解为什么会出现这个问题。有谁知道为什么会这样?我想了解是为了防止它再次发生。

这也可能对其他人有帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

它是Realm 3.2.0和3.2.1中的一个错误,但是如果你更新到Realm 3.3.0那么应该修复它。

顺便说一下,如果你有点好奇,我倾向于使用以下Proguard配置用于Realm,这会阻止它(尽管你通常不需要它):

#realm 0.82.2
-keepnames public class * extends io.realm.RealmObject
-keep @io.realm.annotations.RealmModule class *
-keep class io.realm.** { *; }
-dontwarn javax.**
-dontwarn io.realm.**

#realm 0.84.1+
-keep class io.realm.annotations.RealmModule
-keep @io.realm.annotations.RealmModule class *
-keep class io.realm.internal.Keep
-keep @io.realm.internal.Keep class *
-dontwarn javax.**
-dontwarn io.realm.**

#realm 0.89.0+
-keep class io.realm.RealmCollection
-keep class io.realm.OrderedRealmCollection