편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2020.06.25

    안드로이드 스튜디오가 강제종료 됩니다 'java.lang.String java.lang.Object.toString()' on a null object reference


    지도 맵에서 버튼을 누르면 오류가 납니다. 스레드를 이용하긴 했는데, 도대체 어느 부분이 틀린 건지 모르겠어요. 다른분이 하신거 그대로 따라한건데, 도와주세요 logcat 해석을 잘 못해서 도와주세요.

    06-20 16:55:53.125 15979-15979/com.ossw.taxiapp E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.ossw.taxiapp, PID: 15979
        java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
            at com.ossw.taxiapp.CustomerMapActivity$6.onDataChange(CustomerMapActivity.java:289)
            at com.google.firebase.database.Query$1.onDataChange(com.google.firebase:firebase-database@@19.3.0:179)
            at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.3.0:75)
            at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.3.0:63)
            at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.3.0:55)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
    

    //오류구간 입니다

        private void getDriverInfo() {
            mDriverInfo.setVisibility(View.VISIBLE);
            DatabaseReference mCustomerDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child("Drivers").child(driverFoundID);
            mCustomerDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    if (dataSnapshot.exists() && dataSnapshot.getChildrenCount() > 0) {
                        if (dataSnapshot.child("name") != null) {
                            d_name.setText(dataSnapshot.child("name").getValue().toString());
                        }
                        if (dataSnapshot.child("phone") != null) {
                            d_phone.setText(dataSnapshot.child("phone").getValue().toString());
                        }
                        if (dataSnapshot.child("car") != null) {
                            d_car.setText(dataSnapshot.child("car").getValue().toString());
                        }
                        if (dataSnapshot.child("carNum") != null) {
                            d_callNum.setText(dataSnapshot.child("callNum").getValue().toString());
                        }
                        if (dataSnapshot.child("profileImageUrl").getValue() != null) {
                            Glide.with(getApplication()).load(dataSnapshot.child("profileImageUrl").getValue().toString()).into(d_profileimg);
                        }
    
                        int ratingSum = 0;
                        float ratingsTotal = 0;
                        float ratingsAvg = 0;
                        for (DataSnapshot child : dataSnapshot.child("rating").getChildren()) {
                            ratingSum = ratingSum + Integer.valueOf(child.getValue().toString());
                            ratingsTotal++;
                        }
                        if (ratingsTotal != 0) {
                            ratingsAvg = ratingSum / ratingsTotal;
                            mRatingBar.setRating(ratingsAvg);
                        }
                    }
                }
    
                @Override
                public void onCancelled(DatabaseError databaseError) {
                }
            });
        }
    
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.06.21

    안드로이드 스튜디오가 강제종료 됩니다


    지도 맵에서 버튼을 누르면 오류가 납니다ㅠㅠ 스레드를 이용하긴 했는데 도대체 어느 부분이 틀린 건지 모르겠어요.. 다른분이 하신거 그대로 따라한건데..ㅠㅠㅠㅠㅠ 도와주세요 logcat 해석을 잘 못해서 ㅠㅠㅠ도와주세요

    06-20 16:55:53.125 15979-15979/com.ossw.taxiapp E/AndroidRuntime: FATAL EXCEPTION: main Process: com.ossw.taxiapp, PID: 15979 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference at com.ossw.taxiapp.CustomerMapActivity$6.onDataChange(CustomerMapActivity.java:289) at com.google.firebase.database.Query$1.onDataChange(com.google.firebase:firebase-database@@19.3.0:179) at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.3.0:75) at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.3.0:63) at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.3.0:55) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

    //오류구간 입니다

    private void getDriverInfo() {
        mDriverInfo.setVisibility(View.VISIBLE);
        DatabaseReference mCustomerDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child("Drivers").child(driverFoundID);
        mCustomerDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists() && dataSnapshot.getChildrenCount() > 0) {
                    if (dataSnapshot.child("name") != null) {
                        d_name.setText(dataSnapshot.child("name").getValue().toString());
                    }
                    if (dataSnapshot.child("phone") != null) {
                        d_phone.setText(dataSnapshot.child("phone").getValue().toString());
                    }
                    if (dataSnapshot.child("car") != null) {
                        d_car.setText(dataSnapshot.child("car").getValue().toString());
                    }
                    if (dataSnapshot.child("carNum") != null) {
                        d_callNum.setText(dataSnapshot.child("callNum").getValue().toString());
                    }
                    if (dataSnapshot.child("profileImageUrl").getValue() != null) {
                        Glide.with(getApplication()).load(dataSnapshot.child("profileImageUrl").getValue().toString()).into(d_profileimg);
                    }
    
                    int ratingSum = 0;
                    float ratingsTotal = 0;
                    float ratingsAvg = 0;
                    for (DataSnapshot child : dataSnapshot.child("rating").getChildren()) {
                        ratingSum = ratingSum + Integer.valueOf(child.getValue().toString());
                        ratingsTotal++;
                    }
                    if (ratingsTotal != 0) {
                        ratingsAvg = ratingSum / ratingsTotal;
                        mRatingBar.setRating(ratingsAvg);
                    }
                }
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
    }