我有一个在手机上运行良好的GPS应用程序,但是我发现一些人在生产环境中遇到了空指针异常。
SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
// Getting GoogleMap object from the fragment
googleMap = fm.getMap();
// Enabling MyLocation Layer of Google Map
googleMap.setMyLocationEnabled(true);
googleMap.setPadding(0, 0, 0, 90);
我从生产环境中得到的错误信息是:
引起原因:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.GoogleMap.setMyLocationEnabled(boolean)' on a null object reference
所以我进行了一些研究,发现getMap方法已被删除,人们建议使用getMapAsync(this);
@Override
public void onMapReady(GoogleMap googleMap) {
this.googleMap = googleMap; //which doesn't seem to work
}
然而,我在许多不同的方法中引用了googleMap
变量,我不能把所有的代码都移到onMapReady
方法中。我尝试在onMapReady
方法中使用this.googleMap = googleMap
,但每当我尝试引用googleMap
变量时仍然会收到空指针异常。我在onCreate()方法中定义了getMapAsync(this),并在onResume()方法中尝试访问'googleMap'对象,但遇到了空指针异常。有没有办法解决这个问题?谢谢。