在数组类上产生NullPointerException

时间:2019-03-18 15:31:01

标签: android google-maps

问题:

我正在尝试在Firebase数据库上提取位置坐标,但是似乎在数组上处理的坐标(经纬度)正返回空值。我收到了NullPointerException。

我认为这是问题所在。

screenshot

我在logcat上没有出现错误,但这是我的地图的样子:

image of Map

我的数据库更新了位置,但是地图未将其标记定位到该位置。我该如何解决?

我尝试过的事情:

以下是我如何将数据传递到Firebase数据库的代码片段。

public void sendDataToFirebase(SmsMessage sms, Context context) {
    FirebaseApp.initializeApp(context);
    databaseLocation = FirebaseDatabase.getInstance().getReference("conilocationdata");

    String senderNumber = sms.getOriginatingAddress();
    String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
    String message = sms.getMessageBody();
    String[] separatedSMS = message.split("\\s+");

    if(senderNumber.equals("+000000000000000")) {
        DatabaseReference mRef = databaseLocation.push();
        Double latitudedb = Double.parseDouble(separatedSMS[1]);
        Double longitudedb = Double.parseDouble(separatedSMS[3]);

        LocationArray locationArray = new LocationArray(mydate,senderNumber,latitudedb,longitudedb);
        databaseLocation.child("conilocationdata").push().setValue(locationArray);

        Log.e("FIREBASE OPERATIONS:","Location data inserted");
    }

这是我的代码,用于在数据库中更新的当前位置添加标记。

public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;

    googleMap.setOnMarkerClickListener(this);
    googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
    mChild.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            for(DataSnapshot s: dataSnapshot.getChildren()) {
                LocationArray locationArray = s.getValue(LocationArray.class);
                LatLng location = new LatLng(locationArray.latitude,locationArray.longitude);
                mMap.addMarker(new MarkerOptions().position(location).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_VIOLET)));

                Log.e("MAP OPERATIONS:","Marker has been added to updated location");
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

这是我的LocationArray.class

LocationArray Snippet Code

...我在上面的代码中一直在访问。我该如何解决我的问题?

0 个答案:

没有答案