空指针异常mapview.onResume

时间:2019-07-11 15:47:46

标签: android google-maps androidx

我有以下空指针异常

此代码可以正常工作,但我将GMS库升级为androidx库

NULL
binding.mapView.onResume()

任何机构都可以提供有关正在发生的事情的任何线索吗?

1 个答案:

答案 0 :(得分:0)

这些是您需要检查的事情:

  1. 确保您同时拥有这两个(我只有api键元数据)

    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    

2。您在xml中有这样一个片段,其class属性如下所示正确

 <fragment
   android:id="@+id/google_map_fragment"
   class="com.google.android.gms.maps.SupportMapFragment"
   android:layout_width="match_parent"
   android:layout_height="match_parent"/>

在我的情况下,地图片段是一个孩子,在另一个片段内。

此父片段显然不应是MapFragment或SupportMapFragment。将其从SupportMapFragment更改为Fragment后,地图显示得很好。

public class ParentFragment extends Fragment {

现在,如果您正在使用片段,请尝试执行此操作,->而不是在onCreateView中获取地图,而是在onViewCreated中获得该地图,如下所示:

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.rewards_google_map_area);
    if (mapFragment != null) {
        LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
        if (locationManager != null && mapFragment.getMap() != null) {
            googleMap=mapFragment.getMap();
            //after this you do whatever you want with the map
        }
    }

 }