我刚刚将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配置是自动排序的。
我不完全理解为什么会出现这个问题。有谁知道为什么会这样?我想了解是为了防止它再次发生。
这也可能对其他人有帮助。
感谢。
答案 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