什么导致异常'java.lang.RuntimeException:无法调用observer方法'?

时间:2018-03-08 06:30:42

标签: android firebase android-activity

我正在编写代码以从firebase数据库中获取数据:

 private void displayMessages(){

        //Suppose you want to retrieve "chats" in your Firebase DB:

        DatabaseReference ref=FirebaseDatabase.getInstance().getReference(Constants.USERS_CHAT).child(chatId);
        Log.d(TAG,"Inside query"+ref);

        ref.addListenerForSingleValueEvent(new ValueEventListener(){

            @Override
            public void onDataChange(DataSnapshot dataSnapshot){
                Log.d(TAG,"Inside query Inside onDataChange");
                if(dataSnapshot.exists()) {
                    queryforDisplayMessages=mDbRefusers_chat.child(chatId);
                }else{
                    queryforDisplayMessages=mDbRefusers_chat.child(revchatId);
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

但是在运行它时,我得到以下异常:

  

流程:com.iworld.daxi,PID:20438                                                                    java.lang.RuntimeException:无法启动活动ComponentInfo {com.iworld.daxi / com.iworld.daxi.UserChatActivity}:

java.lang.RuntimeException: Failed to call observer method
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2946)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3046)
   at android.app.ActivityThread.-wrap11(Unknown Source:0)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688)
   at android.os.Handler.dispatchMessage(Handler.java:105)
   at android.os.Looper.loop(Looper.java:164)
   at android.app.ActivityThread.main(ActivityThread.java:6809)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: java.lang.RuntimeException: Failed to call observer method
   at android.arch.lifecycle.ClassesInfoCache$MethodReference.invokeCallback(ClassesInfoCache.java:225)
   at android.arch.lifecycle.ClassesInfoCache$CallbackInfo.invokeMethodsForEvent(ClassesInfoCache.java:193)
   at android.arch.lifecycle.ClassesInfoCache$CallbackInfo.invokeCallbacks(ClassesInfoCache.java:184)
   at android.arch.lifecycle.ReflectiveGenericLifecycleObserver.onStateChanged(ReflectiveGenericLifecycleObserver.java:36)
   at android.arch.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:354)
   at android.arch.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:292)
   at android.arch.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:332)
   at android.arch.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:137)
   at android.arch.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:123)
   at android.arch.lifecycle.ReportFragment.dispatch(ReportFragment.java:121)
   at android.arch.lifecycle.ReportFragment.onStart(ReportFragment.java:81)
   at android.app.Fragment.performStart(Fragment.java:2637)
   at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1312)
   at android.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1549)
   at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1611)
   at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3039)
   at android.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:2996)
   at android.app.FragmentController.dispatchStart(FragmentController.java:189)
   at android.app.Activity.performStart(Activity.java:7021)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2909)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3046) 
   at android.app.ActivityThread.-wrap11(Unknown Source:0) 
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688) 
   at android.os.Handler.dispatchMessage(Handler.java:105) 
   at android.os.Looper.loop(Looper.java:164) 
   at android.app.ActivityThread.main(ActivityThread.java:6809) 
   at java.lang.reflect.Method.invoke(Native Method) 
   at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.database.ChildEventListener com.google.firebase.database.Query.addChildEventListener(com.google.firebase.database.ChildEventListener)' on a null object reference
   at com.firebase.ui.database.FirebaseArray.onCreate(FirebaseArray.java:53)
   at com.firebase.ui.common.BaseObservableSnapshotArray.addChangeEventListener(BaseObservableSnapshotArray.java:97)
   at com.firebase.ui.database.FirebaseListAdapter.startListening(FirebaseListAdapter.java:48)
   at java.lang.reflect.Method.invoke(Native Method)
   at android.arch.lifecycle.ClassesInfoCache$MethodReference.invokeCallback(ClassesInfoCache.java:215)
   at android.arch.lifecycle.ClassesInfoCache$CallbackInfo.invokeMethodsForEvent(ClassesInfoCache.java:193) 
   at android.arch.lifecycle.ClassesInfoCache$CallbackInfo.invokeCallbacks(ClassesInfoCache.java:184) 
   at android.arch.lifecycle.ReflectiveGenericLifecycleObserver.onStateChanged(ReflectiveGenericLifecycleObserver.java:36) 
   at android.arch.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:354) 
   at android.arch.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:292) 
   at android.arch.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:332) 
   at android.arch.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:137) 
   at android.arch.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:123) 
   at android.arch.lifecycle.ReportFragment.dispatch(ReportFragment.java:121) 
   at android.arch.lifecycle.ReportFragment.onStart(ReportFragment.java:81) 
   at android.app.Fragment.performStart(Fragment.java:2637) 
   at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1312) 
   at android.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1549) 
   at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1611) 
   at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3039) 
   at android.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:2996) 
   at android.app.FragmentController.dispatchStart(FragmentController.java:189) 
   at android.app.Activity.performStart(Activity.java:7021) 
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2909) 
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3046) 
   at android.app.ActivityThread.-wrap11(Unknown Source:0) 
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688) 
   at android.os.Handler.dispatchMessage(Handler.java:105) 
   at android.os.Looper.loop(Looper.java:164) 
   at android.app.ActivityThread.main(ActivityThread.java:6809) 
   at java.lang.reflect.Method.invoke(Native Method) 
   at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
03-08 10:22:40.020 20438-20438/com.iworld.daxi D/AppTracker: App Event: crash

我还观察到onDataChange()方法没有被触发。

0 个答案:

没有答案