java - map 就绪回调返回 null

标签 java android google-api

我正在尝试为我的应用程序制作一个谷歌 API,以在我的应用程序上显示谷歌地图,但我不断收到此错误 java.lang.RuntimeException:无法启动 Activity ComponentInfo{com.123.1234/com.123.1234.RideHailActivity}:java.lang.NullPointerException:尝试调用虚拟方法 'void com.google.android.gms.maps.SupportMapFragment空对象引用上的 .getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)'

这是 map Activity

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ride_hail);
        final SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        assert mapFragment != null;
        mapFragment.getMapAsync(this);

最佳答案

当我们调用 mapFragment.getMapAsync(this); 时,您可能会注意到 Async 这个词,这意味着我们可能无法立即获取 GoogleMap 引用。

大多数情况下您会得到null。所以 assert mapFragment != null; 将抛出错误

您必须实现 OnMapReadyCallback#onMapReady 回调才能获取 GoogleMap 引用而不是 null。

您还可以从 Android Studio 创建一个 GoogleMap 示例,您将看到:

override fun onMapReady(googleMap: GoogleMap) {
    mMap = googleMap

    // Add a marker in Sydney and move the camera
    val sydney = LatLng(-34.0, 151.0)
    mMap.addMarker(MarkerOptions().position(sydney).title("Marker in Sydney"))
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney))
}

关于java - map 就绪回调返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62205367/

相关文章:

android - PreferenceFragment 为空 (Android)

Python Mocking - 如何模拟 Google 的 storage.client?

python - 使用 rest api 在 google drive 中创建新文件夹

javascript - Nashorn 与 Java 1.8 到 15 的兼容性吗?

android - subscribe成功执行后rxjava定时器抛出超时异常

java - 当文件更改时,我读取文件,文件的内容始终相同?

android - android 中的 Activity 流程 A->B->C->A

angular - Google API 回调更改后 View 未更新

java - 重复类型转换

java - 迭代 ConcurrentHashMap 值线程安全吗?