java - Android CameraUpdateFactory 未初始化

标签 java android

我正在尝试使用谷歌地图开发 android 应用程序,但出现错误 -

NullPointerException: CameraUpdateFactory is not initialized

    GoogleMap mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

    locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);


    Criteria criteria = new Criteria();


    String provider = locationManager.getBestProvider(criteria, true);
    Location location = locationManager.getLastKnownLocation(provider);
    locationManager.requestLocationUpdates(provider, 20000, 0, this);       

    double lat = Double.parseDouble("xx.xxxxxx");
    double log = Double.parseDouble("yy.yyyyyy");
    LatLng currentPosition = new LatLng(lat, log);

    mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(currentPosition,16));
    mMap.addMarker(new MarkerOptions()
            .position(currentPosition)
            .snippet("Lat:" + lat + "Lng:" + log));

请帮帮我。 提前致谢。

最佳答案

你需要实现

OnMapReadyCallback

然后覆盖

onMapReady

这是为了确保您的 map 已正确设置并准备好进行任何相机更新。

public class YourMapFragment extends Fragment implements OnMapReadyCallback { 
...
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(currentPosition,16));

    mMap.addMarker(new MarkerOptions()
            .position(currentPosition)
            .snippet("Lat:" + lat + "Lng:" + log));
}

    ...
    }

关于java - Android CameraUpdateFactory 未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38952556/

相关文章:

java - 检查线程是否正在 sleep 总是返回 true

java - 对服务器上的 MS Office(Word、Excel 等)和 PDF 文件进行数字签名

java - 如何在代码中检索 layout_height

android - 从结构中删除后如何将 Twitter 集成到 Android 中以进行 Twitter 登录?

java - 为什么按钮在第二个实例中实例化,而不是在第一个实例中实例化?

Android Gradle - 在哪里添加 "android.debug.obsoleteApi=true"

java - 在 Java 中传递自定义对象

java - 如何修复 build.gradle 文件中的依赖项

java - 如何使用流打印HashMap中值的键

android - BottomNavigationView 不是全宽