sdk 16(果冻豆)上的领域,没有 rxjava 崩溃
Posted
技术标签:
【中文标题】sdk 16(果冻豆)上的领域,没有 rxjava 崩溃【英文标题】:realm on sdk 16(Jelly Bean) without rxjava crashing 【发布时间】:2016-03-03 18:48:18 【问题描述】:重要细节
我已添加此处列出的虚拟类 https://realm.io/docs/java/latest/#jackson-databind
并且在 Lollipop 上一切正常,但是当我为 4.1 Jelly Bean 创建 Genymotion 模拟器并尝试推送应用程序时,我收到下面列出的错误,看起来它正在尝试解决在 rxjava Observable 中定义的 OnSubscribe 接口我在装模作样。
我没有在下面的堆栈中使用 Proguard,但是在设置之后我得到了相同的结果。
这是意料之中的,应该被忽略吗?我还有一两个其他警告消息,我正试图追踪。
03-03 16:55:58.510 2017-2017/com.armssoftware.android I/dalvikvm: 解析 Lio/realm/rx/RealmObservableFactory$4 失败;界面 7525 'Lrx/Observable$OnSubscribe;'
03-03 16:55:58.510 2017-2017/com.armssoftware.android W/dalvikvm: 类 'Lio/realm/rx/RealmObservableFactory$4;' 的链接失败了
03-03 16:55:58.510 2017-2017/com.armssoftware.android E/dalvikvm: 找不到类 'io.realm.rx.RealmObservableFactory$4', 引用自方法 io.realm.rx.RealmObservableFactory.getObjectObservable
03-03 16:55:58.510 2017-2017/com.armssoftware.android W/dalvikvm: VFY:无法解析新实例 6678 (Lio/realm/rx/RealmObservableFactory$4;) 在 lio/realm/rx/RealmObservableFactory;
03-03 16:55:58.510 2017-2017/com.armssoftware.android D/dalvikvm: VFY:在 0x0000 处替换操作码 0x22
03-03 16:55:58.510 2017-2017/com.armssoftware.android I/dalvikvm: 解析 Lio/realm/rx/RealmObservableFactory$3 失败;界面 7525 'Lrx/Observable$OnSubscribe;'
03-03 16:55:58.510 2017-2017/com.armssoftware.android W/dalvikvm: 类 'Lio/realm/rx/RealmObservableFactory$3;' 的链接失败了
03-03 16:55:58.510 2017-2017/com.armssoftware.android E/dalvikvm: 找不到类 'io.realm.rx.RealmObservableFactory$3', 引用自方法 io.realm.rx.RealmObservableFactory.getRealmResultsObservable
03-03 16:55:58.510 2017-2017/com.armssoftware.android W/dalvikvm: VFY:无法解析新实例 6675 (Lio/realm/rx/RealmObservableFactory$3;) 在 lio/realm/rx/RealmObservableFactory;
03-03 16:55:58.510 2017-2017/com.armssoftware.android D/dalvikvm: VFY:在 0x0000 处替换操作码 0x22
03-03 16:55:58.510 2017-2017/com.armssoftware.android I/dalvikvm: 解析 Lio/realm/rx/RealmObservableFactory$2 失败;界面 7525 'Lrx/Observable$OnSubscribe;'
03-03 16:55:58.510 2017-2017/com.armssoftware.android W/dalvikvm: 类 'Lio/realm/rx/RealmObservableFactory$2;' 的链接失败了
03-03 16:55:58.510 2017-2017/com.armssoftware.android E/dalvikvm: 找不到类 'io.realm.rx.RealmObservableFactory$2', 引用自方法 io.realm.rx.RealmObservableFactory.from
03-03 16:55:58.510 2017-2017/com.armssoftware.android W/dalvikvm: VFY:无法解析新实例 6672 (Lio/realm/rx/RealmObservableFactory$2;) 在 lio/realm/rx/RealmObservableFactory;
03-03 16:55:58.510 2017-2017/com.armssoftware.android D/dalvikvm: VFY:在 0x0003 处替换操作码 0x22
03-03 16:55:58.510 2017-2017/com.armssoftware.android I/dalvikvm: 解析 Lio/realm/rx/RealmObservableFactory$1 失败;界面 7525 'Lrx/Observable$OnSubscribe;'
03-03 16:55:58.510 2017-2017/com.armssoftware.android W/dalvikvm: 类 'Lio/realm/rx/RealmObservableFactory$1;' 的链接失败了
03-03 16:55:58.510 2017-2017/com.armssoftware.android E/dalvikvm: 找不到类 'io.realm.rx.RealmObservableFactory$1', 引用自方法 io.realm.rx.RealmObservableFactory.from
03-03 16:55:58.510 2017-2017/com.armssoftware.android W/dalvikvm: VFY:无法解析新实例 6669 (Lio/realm/rx/RealmObservableFactory$1;) 在 lio/realm/rx/RealmObservableFactory;
03-03 16:55:58.510 2017-2017/com.armssoftware.android D/dalvikvm: VFY:在 0x0003 处替换操作码 0x22
【问题讨论】:
【参考方案1】:事实证明,这不是导致应用程序崩溃的原因,它只是在 dalvik 而不是 Art 上运行时记录的众多错误消息之一。
我遇到的问题是尝试按照此处的说明在 4.2.2 之前的版本上运行使用 Google 服务的应用。 https://developers.google.com/android/guides/setup
“带有 AVD 的 Android 模拟器,运行基于 Android 4.2.2 或更高版本的 Google API 平台。”
所以我在部署时仍然看到以下错误,但应用程序似乎运行正常。
03-03 15:51:20.063 16882-16921/com.armssoftware.android I/dalvikvm: 解决 Lio/realm/a/a$1 失败;接口 5529 'Lrx/Observable$OnSubscribe;' 03-03 15:51:20.063 16882-16921/com.armssoftware.android W/dalvikvm:类链接 'Lio/领域/a/a$1;' 03-03 15:51:20.063 失败 16882-16921/com.armssoftware.android E/dalvikvm:找不到类 'io.realm.a.a$1',引用自方法 io.realm.a.a.a 03-03 15:51:20.063 16882-16921/com.armssoftware.android W/dalvikvm: VFY: 无法解析新实例 4885 (Lio/realm/a/a$1;) in 里奥/领域/a/a; 03-03 15:51:20.063 16882-16921/com.armssoftware.android D/dalvikvm: VFY: 在 0x0000 03-03 15:51:20.063 处替换操作码 0x22 16882-16921/com.armssoftware.android I/dalvikvm:解析失败 里奥/领域/a/a$1; interface 5529 'Lrx/Observable$OnSubscribe;' 03-03 15:51:20.063 16882-16921/com.armssoftware.android W/dalvikvm: 链接 类 'Lio/realm/a/a$1;' 03-03 15:51:20.063 失败 16882-16921/com.armssoftware.android D/dalvikvm:DexOpt:无法选择 在 Lio/realm/a/a 的 0x02 处直接调用 0x8e17;.a 03-03 15:51:20.063 16882-16921/com.armssoftware.android D/dalvikvm:尝试加载库 /data/app-lib/com.armssoftware.android-1/librealm-jni.so 0xa63d1538 03-03 15:51:20.063 16882-16921/com.armssoftware.android D/dalvikvm: 添加了共享库 /data/app-lib/com.armssoftware.android-1/librealm-jni.so 0xa63d1538
【讨论】:
很高兴知道 Realm 不是导致崩溃的原因。我们正在努力删除此 PR github.com/realm/realm-java/pull/2361 中与 RxJava 相关的警告消息。如果用户不需要它们,我们也在尝试找出一种完全删除 RxJava 相关接口的方法。【参考方案2】:在 Realm 文档中,关于 Jackson 的特定 section 说解决方案是在您的项目中添加 RxJAVA 依赖项。 就我个人而言,它奏效了。
【讨论】:
以上是关于sdk 16(果冻豆)上的领域,没有 rxjava 崩溃的主要内容,如果未能解决你的问题,请参考以下文章