簡體   English   中英

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$5$1.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類,要么至少用空檢查括住您的呼叫,以確保不會添加空數據:

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)));
            }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM