Android应用程序在Firebase runloop(3.0.0)中的Uncaught异常崩溃

时间:2017-05-06 11:53:37

标签: android firebase firebase-realtime-database

我正在开发一个使用Firebase数据库的应用程序。我需要从数据库中检索一些信息,但addValueEventListener根本不会触发,几分钟后我的应用程序崩溃并出现以下错误  E/AndroidRuntime: FATAL EXCEPTION: main Process: shareanddrive.net.net23.myapp, PID: 3317 java.lang.RuntimeException: Uncaught exception in Firebase runloop (3.0.0). Please report to support@firebase.com at com.google.android.gms.internal.zzagf$1$1.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.OutOfMemoryError: OutOfMemoryError thrown while trying to throw OutOfMemoryError; no stack trace available

然而adValuEventListener在之前的活动中起作用,但随着我的第二次活动,它停止工作。我检查了它的参考是否正确。我在第二个活动中检索的代码是:

adsviewReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            textView.append("on add value datachange");

            }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            textView.setText("Failed ");
        }
    });

来自onDataChangedonCancelled的功能都不会触发。 请帮助。

2 个答案:

答案 0 :(得分:1)

这是由于使用了不兼容的Firebase Auth版本和Firebase Realtime Database SDK引起的。请更新您对Firebase Auth和Firebase数据库的依赖关系到最新版本。选中https://github.com/firebase/firebase-android-sdk/issues/1086

答案 1 :(得分:0)

您获得的例外是OutOfMemoryError。这意味着您尝试从数据库下载的数据超过设备有内存要处理的数据。

解决此问题的唯一方法是减少应用同步的数据量。你可以做的事情:

  1. 确保您onStop()onPause()上的上一个活动remove the listener,以便可以从内存中移除上一个活动的数据。
  2. 将您的侦听器连接到树的较低位置,以便同步较少的数据。