【发布时间】:2018-06-22 05:53:17
【问题描述】:
我为我的 Android 应用实现了一个房间数据库。它用一个测试项目异步填充数据库,到目前为止这似乎工作。现在我想实现一个监听器,如果数据发生变化,它会动态更新 UI。但是我的听众使应用程序在启动时崩溃。这是我在活动中的听众:
LiveData<List<Cat>> CatLiveData = Manager.getDB().getCatDAO().getCats();
CatLiveData. observe(this, new Observer<List<Cat>>() {
@Override
public void onChanged(@Nullable List<Cat> Cats) {
//Update your UI here.
binding.myControl.setText(Cats.get(0).getsName().toString());
}
});
它应该获取 Cats-list 的第一个元素并返回它的 name 属性。 myControl 应该显示此属性。检查 null 并不能解决崩溃问题。
非常感谢!
编辑: 这是日志猫
01-23 22:18:00.863 9633-9633/? I/art: 后期启用 -Xcheck:jni 01-23 22:18:00.931 9633-9640/? I/art:调试器不再处于活动状态 01-23 22:18:00.931 9633-9640/? I/art:启动阻塞式 GC 检测 01-23 22:18:01.377 9633-9633/? W/系统:类加载器引用未知路径:/mnt/expand/27c5fc5f-9c8e-4173-8379-f18e8d4cf183/app/com.example.erik.test-1/lib/arm 01-23 22:18:01.411 9633-9633/? I/InstantRun:启动即时运行服务器:是主进程 01-23 22:18:01.612 9633-9633/? W/art:在 Android 4.1 之前,方法 android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode)错误地覆盖了 android.graphics.drawable.Drawable 中的包私有方法 01-23 22:18:02.213 9633-9652/com.example.erik.test I/Adreno-EGL: : EGL 1.4 高通构建:Nondeterministic_AU_msm8974_LA.BF.1.1.3_RB1__release_AU (I389a668de0) OpenGL ES 着色器编译器版本:E031.28.00.04 建造日期:10/24/15 星期六 本地分公司:mybranch15621148 远程分支:quic/LA.BF.1.1.3_rb1.3 本地补丁:无 重建分支:没有 01-23 22:18:02.217 9633-9652/com.example.erik.test I/OpenGLRenderer:初始化 EGL,1.4 版 01-23 22:18:02.217 9633-9652/com.example.erik.test D/OpenGLRenderer: 交换行为 1 01-23 22:18:02.267 9633-9633/com.example.erik.test D/AndroidRuntime: 关闭虚拟机 01-23 22:18:02.268 9633-9633/com.example.erik.test E/AndroidRuntime: 致命异常: main 进程:com.example.erik.test,PID:9633 java.lang.NoSuchMethodError: 没有虚拟方法 iteratorWithAdditions()Landroid/arch/core/internal/SafeIterableMap$ListIterator;在 Landroid/arch/core/internal/SafeIterableMap 类中;或其超类(“android.arch.core.internal.SafeIterableMap”的声明出现在 /mnt/expand/27c5fc5f-9c8e-4173-8379-f18e8d4cf183/app/com.example.erik.test-1/split_lib_dependencies_apk.apk ) 在 android.arch.lifecycle.LiveData.dispatchingValue(LiveData.java:145) 在 android.arch.lifecycle.LiveData.setValue(LiveData.java:293) 在 android.arch.lifecycle.LiveData$2.run(LiveData.java:108) 在 android.os.Handler.handleCallback(Handler.java:751) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6186) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
【问题讨论】:
-
“但我的监听器使应用程序在启动时崩溃”——使用 LogCat 检查与您的崩溃相关的 Java 堆栈跟踪:stackoverflow.com/questions/23353173/…
-
张贴你的日志猫
-
好的,我加了。谢谢
标签: android observers android-room android-livedata