在百度地图api开发中,会遇到:
java.lang.IllegalStateException: you have not supplyed the global app context
info from SDKInitializer.initialize(Context) function
非法状态异常的情况,他说我们没有在SDKInitializer.initialize(Context context)当中提供一个全局应用程序的上下文。
解决方法:
(1)新建一个application文件,例:DemoApplication.java。
(2)在application文件当中添加代码SDKInitializer.initialize(Context context),如图:
(3)在清单文件AndroidManifest.xml中添加application文件,如图:
(4)随便写一个启动百度地图的例子:
/**
* 演示MapView的基本用法
*/
public class BaseMapDemo extends Activity {
@SuppressWarnings("unused")
private static final String LTAG = BaseMapDemo.class.getSimpleName();
private MapView mMapView;
private BaiduMap mBaiduMap;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
if (intent.hasExtra("x") && intent.hasExtra("y")) {
// 当用intent参数时,设置中心点为指定点
Bundle b = intent.getExtras();
LatLng p = new LatLng(b.getDouble("y"), b.getDouble("x"));
mMapView = new MapView(this,
new BaiduMapOptions().mapStatus(new MapStatus.Builder()
.target(p).build()));
} else {
mMapView = new MapView(this, new BaiduMapOptions());
}
setContentView(mMapView);
mBaiduMap = mMapView.getMap();
}
@Override
protected void onPause() {
super.onPause();
// activity 暂停时同时暂停地图控件
mMapView.onPause();
}
@Override
protected void onResume() {
super.onResume();
// activity 恢复时同时恢复地图控件
mMapView.onResume();
}
@Override
protected void onDestroy() {
super.onDestroy();
// activity 销毁时同时销毁地图控件
mMapView.onDestroy();
}
}
(5)但是别忘了百度地图环境配置,这里就不介绍了,就可以直接运行