Android Studio java.lang.NullPointerException: 尝试调用虚拟方法
Android Studio java.lang.NullPointerException: Attempt to invoke virtual method
我从我的应用程序中得到的错误
我的错误
java.lang.NullPointerException: Attempt to invoke virtual method
'java.lang.String com.populargeng.trackamechanic.Model.Client.getName()' on a
null object reference
at com.populargeng.trackamechanic.Home.onDataChange(Home.java:355)
我写的代码行
我的代码
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Because Client and User Model is same properties
// So we can use the Client Model to get User here
Client client = dataSnapshot.getValue(Client.class);
// Add client to map
mMap.addMarker(new MarkerOptions().position(new LatLng(location.latitude, location.longitude))
.flat(true).title(client.getName())
.snippet("Phone: "+client.getPhone())
.icon(BitmapDescriptorFactory.fromResource(R.drawable.repair)));
}
请问我该如何更正这个..?它早些时候可以工作,但现在不再工作了
从异常消息 java.lang.String com.populargeng.trackamechanic.Model.Client.getName()
中可以看出,此错误取决于您返回的数据,即 dataSnapshot
为空或无法填充 Client.class
因为 dataSnapshot.getValue(Client.class)
返回一个空对象。要解决此问题,您必须调整 Client
class 或至少用空检查包围您的调用以确保不会添加空数据:
if (client != null) {
// Add client to map
mMap.addMarker(new MarkerOptions().position(new LatLng(location.latitude, location.longitude))
.flat(true).title(client.getName())
.snippet("Phone: "+client.getPhone())
.icon(BitmapDescriptorFactory.fromResource(R.drawable.repair)));
}
}
我从我的应用程序中得到的错误
我的错误
java.lang.NullPointerException: Attempt to invoke virtual method
'java.lang.String com.populargeng.trackamechanic.Model.Client.getName()' on a
null object reference
at com.populargeng.trackamechanic.Home.onDataChange(Home.java:355)
我写的代码行
我的代码
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Because Client and User Model is same properties
// So we can use the Client Model to get User here
Client client = dataSnapshot.getValue(Client.class);
// Add client to map
mMap.addMarker(new MarkerOptions().position(new LatLng(location.latitude, location.longitude))
.flat(true).title(client.getName())
.snippet("Phone: "+client.getPhone())
.icon(BitmapDescriptorFactory.fromResource(R.drawable.repair)));
}
请问我该如何更正这个..?它早些时候可以工作,但现在不再工作了
从异常消息 java.lang.String com.populargeng.trackamechanic.Model.Client.getName()
中可以看出,此错误取决于您返回的数据,即 dataSnapshot
为空或无法填充 Client.class
因为 dataSnapshot.getValue(Client.class)
返回一个空对象。要解决此问题,您必须调整 Client
class 或至少用空检查包围您的调用以确保不会添加空数据:
if (client != null) {
// Add client to map
mMap.addMarker(new MarkerOptions().position(new LatLng(location.latitude, location.longitude))
.flat(true).title(client.getName())
.snippet("Phone: "+client.getPhone())
.icon(BitmapDescriptorFactory.fromResource(R.drawable.repair)));
}
}