我有以下空指针异常
此代码可以正常工作,但我将GMS库升级为androidx库
NULL
binding.mapView.onResume()
任何机构都可以提供有关正在发生的事情的任何线索吗?
答案 0 :(得分:0)
这些是您需要检查的事情:
确保您同时拥有这两个(我只有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
}
}
}