【问题标题】:attempt to invoke virtual method on a null object reference app driver尝试在空对象引用应用程序驱动程序上调用虚拟方法
【发布时间】:2020-07-29 14:22:47
【问题描述】:

我的错误>

java.lang.NullPointerException: 尝试调用虚方法 'void com.google.firebase.database.DatabaseReference.removeEventListener(com.google.firebase.database.ValueEventListener)' 在空对象引用上

driverLocationRef.removeEventListener(driverLocationRefListener);
driveHasEndedRef.removeEventListener(driveHasEndedRefListener);

我的空虚>

if (driverFoundID != null) {
            DatabaseReference driverRef = FirebaseDatabase.getInstance().getReference().child("Users").child("Drivers").child(driverFoundID).child("customerRequest");
            driverRef.removeValue();
            driverFoundID = null;

        }


        driverFound = false;
        radius = 1;
        String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();

        DatabaseReference ref = FirebaseDatabase.getInstance().getReference("customerRequest");
        GeoFire geoFire = new GeoFire(ref);
        geoFire.removeLocation(userId);


        if (pickupMarker != null) {
            pickupMarker.remove();
        }
        if (mDriverMarker != null) {
            mDriverMarker.remove();
        }


        mRequest.setText("VOCÊ CANCELOU O CHAMADO, PEÇA NOVAMENTE!");

        mDriverInfo.setVisibility(View.GONE);
        mDriverName.setText("");
        mDriverPhone.setText("");
        mDriverCar.setText("Destination: --");
        mDriverProfileImage.setImageResource(R.mipmap.ic_default_user);
    }

【问题讨论】:

  • 请添加一些细节,让社区帮助您解决问题:添加更多细节,如堆栈跟踪、发生这种情况的条件等......
  • driverLocationRef 为 null 或 driveHasEndedRef 为 null。现在至于为什么它们为空,我们需要更多代码用于第一个代码部分和完整的错误日志。
  • 当我搜索驱动程序并且没有在线驱动程序时会发生这种情况,然后当我按下取消按钮时应用程序崩溃

标签: android location uber-api


【解决方案1】:

正如@Simone Avogadro 所说,您需要提供更多信息以便排除故障。

不管怎样,根据 logcat 的错误信息,

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.firebase.database.DatabaseReference.removeEventListener(com.google.firebase.database.ValueEventListener)' on a null object reference

它说您正在尝试从空对象中删除侦听器,检查您何时在数据库引用上添加了侦听器,确保您的对象引用不为空。

编码愉快!

【讨论】:

    【解决方案2】:
    07-31 04:44:44.736 7958-7958/com.simcoder.matheus E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.simcoder.matheus, PID: 7958
        java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.firebase.database.DatabaseReference.removeEventListener(com.google.firebase.database.ValueEventListener)' on a null object reference
            at com.simcoder.matheus.CustomerMapActivity.endRide(CustomerMapActivity.java:391)
            at com.simcoder.matheus.CustomerMapActivity.access$100(CustomerMapActivity.java:61)
            at com.simcoder.matheus.CustomerMapActivity$2.onClick(CustomerMapActivity.java:139)
            at android.view.View.performClick(View.java:5198)
            at android.view.View$PerformClick.run(View.java:21147)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5417)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
    

    【讨论】:

    • 完整的错误日志,如果我有一个调用驱动程序操作,并且这个应用程序在取消搜索驱动程序操作时崩溃,就会发生这种情况。
    猜你喜欢
    • 1970-01-01
    • 2021-08-02
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 2019-05-10
    相关资源
    最近更新 更多