我实现了一个在运行时添加MapFragment
的活动。 MapFragment
xml具有静态的fragment
,我正在尝试在运行时添加。此外,我发现在Lollipop中添加地图片段时存在一些问题。请检查提出的问题和临时解决方案
我也在下面给出了我的代码,
fragment_map.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.MapsFragment">
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="appCreators.bloodfinder.activity.MapsActivity"/>
<include
android:id="@+id/layout"
layout="@layout/template_custom_spinner"/>
</FrameLayout>
MapsFragment.java
实现了 onMapReadyCallback
public class MapsFragment extends SupportMapFragment implements OnMapReadyCallback
在onResume
回调中
@Override
public void onResume() {
super.onResume();
((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)).getMapAsync(this);
}
这总是返回null,我也尝试过其他方法,
((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map)).getMapAsync(this);
这也会返回NullPointerException
MapsActivity.java
getSupportFragmentManager().beginTransaction().add(R.id.fragmentContainer, MapsFragment.newInstance()).commit();
我将这段代码添加到Activity回调的onCreate
方法中。
我无法弄清楚为什么我仍然会得到NullPointerException
错误!
有时我会得到尝试在空对象引用上调用接口方法'void com.google.maps.api.android.lib6.e.fl.o()'
的错误。
希望能得到帮助!
更新:问题仍未解决,我收到以下错误。我查看了日志,但不知道为什么会发生这种情况。
Unable to resume activity {MapsActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void com.google.maps.api.android.lib6.e.fl.o()' on a null object reference
((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map)).getMapAsync(this);
这行代码放在你的onCreateView()
方法中。 - Pankajfragment_map.xml
中删除tools:context="appCreators.bloodfinder.activity.MapsActivity"
。 - Pankaj无法恢复活动{MapsActivity}:java.lang.NullPointerException: 尝试在空对象引用上调用接口方法'void com.google.maps.api.android.lib6.e.fl.o()'
。 - Kavin Prabhu