Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 4.2 getSupportFragmentManager().getMap()返回空值_Android_Android Maps_Supportmapfragment - Fatal编程技术网

Android 4.2 getSupportFragmentManager().getMap()返回空值

Android 4.2 getSupportFragmentManager().getMap()返回空值,android,android-maps,supportmapfragment,Android,Android Maps,Supportmapfragment,我在安卓4.2上遇到过这个问题。 我有三个设备,一个上面有4.1.1,两个上面有4.2。在4.1手机上,getSupportFragmentManager().getMap()返回一个地图,我可以看到它,我可以找到我的位置,等等。但在另两个上,它返回null 以下是我的地图设置代码: mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); mMap.setMyLo

我在安卓4.2上遇到过这个问题。 我有三个设备,一个上面有4.1.1,两个上面有4.2。在4.1手机上,getSupportFragmentManager().getMap()返回一个地图,我可以看到它,我可以找到我的位置,等等。但在另两个上,它返回null

以下是我的地图设置代码:

mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
mMap.setMyLocationEnabled(true);
mMap.getUiSettings().setMyLocationButtonEnabled(false);
mMap.setOnMyLocationChangeListener(this);
在4.2上,最后三行中的每一行都抛出NullPointerException。在4.1中,它们都起作用

我找不到,为什么会这样

注:谷歌地图在4.2上运行得很好。“我的位置”按钮也能工作。
PS2:在“访问我的位置”设置中,“GPS卫星”和“Wi-Fi和移动网络位置”已打开。

检查是否安装了Google Play服务。 可能您需要等待一段时间才能初始化映射控制器

mHandler = new Handler();
mHandler.post(new Runnable() {  
            @Override
            public void run() {
                GoogleMap map = getMap();
                if (map != null) {
                    map.setMyLocationEnabled(true);
                    // INIT HERE
                    map.getUiSettings().setMyLocationButtonEnabled(false);
                    // ...

                } else mHandler.post(this);
            }
        });

检查是否安装了Google Play服务。 可能您需要等待一段时间才能初始化映射控制器

mHandler = new Handler();
mHandler.post(new Runnable() {  
            @Override
            public void run() {
                GoogleMap map = getMap();
                if (map != null) {
                    map.setMyLocationEnabled(true);
                    // INIT HERE
                    map.getUiSettings().setMyLocationButtonEnabled(false);
                    // ...

                } else mHandler.post(this);
            }
        });

谷歌现在使用以下方法更方便地获取地图

myMapFragment.getMapAsync(new OnMapReadyCallback) {
     @Override
     public void onMapReady(GoogleMap googleMap) {
         myMap = googleMap;
         // Put your code here

     }
});

谷歌现在使用以下方法更方便地获取地图

myMapFragment.getMapAsync(new OnMapReadyCallback) {
     @Override
     public void onMapReady(GoogleMap googleMap) {
         myMap = googleMap;
         // Put your code here

     }
});

您是否在设备上安装了Google Play服务?请访问此链接可能会有所帮助您是否在设备上安装了Google Play服务?请访问此链接可能会有所帮助谢谢。我已经安装了play服务,并更新了google应用程序。现在它工作了!谢谢。我已经安装了play服务,并更新了google应用程序。现在它工作了!