Java getMap()为某些设备抛出NullPointerException

Java getMap()为某些设备抛出NullPointerException,java,android,google-maps,Java,Android,Google Maps,我试图在我的应用程序中膨胀一个MapFragment,但最近,它开始在一些设备上抛出NullPointerException,其中大部分是三星设备。我的活动中的代码是 if (map == null) { map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); } 在我的XML中,我用 <fragment android:id="@+id/map"

我试图在我的应用程序中膨胀一个MapFragment,但最近,它开始在一些设备上抛出
NullPointerException
,其中大部分是三星设备。我的活动中的代码是

if (map == null) {
    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
}
在我的XML中,我用

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


有没有人知道为什么这可能会在某些设备上崩溃,而在其他设备上却没有?

可能是安卓的错误。在Android Marshmallow 6.0及更高版本中,您需要请求权限,将其添加到清单中是不够的。

我在应用程序首次启动时添加了这些检查,并且在我的测试设备(Moto X Pure with 6.0)上似乎可以找到它。在分析中,它说这发生在5.1设备上,我的一个用户打电话给我说他们有一台旧的三星设备(我假设是S4)