java - Android 找不到符号方法 getMap()

标签 java android google-maps supportmapfragment

<分区>

我有一个在手机上运行良好的 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 时,我仍然会遇到空指针异常多变的。我在 onCreated() 中定义了 getMapAsync(this),然后尝试在 onResume() 中访问“googleMap”对象并获取空指针异常。有没有办法来解决这个问题?谢谢。

最佳答案

您遇到空指针异常是因为您尝试使用谷歌地图对象,但谷歌地图对象仍然为空,因此您需要执行此步骤。 在 onCreate() 方法中写这段代码

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);

现在使用 public class Demo implements OnMapReadyCallback 实现您的类,简而言之,您需要覆盖 onMapReady(Googlemap googleMap) 方法。 您可以在 onMapReady() 回调后执行所有操作。

@Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
 // Enabling MyLocation Layer of Google Map
googleMap.setMyLocationEnabled(true);
    }

关于java - Android 找不到符号方法 getMap(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38417589/

相关文章:

java - Gradle unknown 在 Eclipse 上创建或导入 Gradle 项目时导入配置

android googleMap - 如何启动两个相机更新动画?

c# - Xamarin mono for android 读取 xml 文件

javascript - 使用折线的谷歌地图方向渲染器错过了航路点中的一些路线

javascript - 获取 GoogleMaps 自动完成 HTML 输入建议的地址列表

Java JComboBox 不显示

java - 相对路径文件未找到异常

java - 当我尝试使用扫描仪时,为什么会收到 java.util.NoSuchElementException

java - OpenCV 相机图像显示偏蓝

android - 谷歌地图 startActivityForResult