最快学习百度地图android开发的方法是在有开发需求的驱动下,学习构造地图应用。将整个目标分成几个容易实现的阶段,步步为营逐步逼近目标。
在开发需求驱动下的官方例子学习,是学习的捷径之一。
具体步骤如下:
从官方下载例子包,通过观摩例子源码与功能关联关系,了解百度地图开发要点。但在分离过程中eclipse下遇到如下报错信息:
一问题描述:
05-04 16:33:53.766: E/AndroidRuntime(21613): Process: com.example.baidumaptest, PID: 21613
05-04 16:33:53.766: E/AndroidRuntime(21613): java.lang.RuntimeException: Unable to instantiate application com.example.baidumaptest.OverlayDemo: java.lang.IllegalStateException: you have not supplyed the global app context info from SDKInitializer.initialize(Context) function.05-04 16:33:53.766: E/AndroidRuntime(21613): at android.app.LoadedApk.makeApplication(LoadedApk.java:516)
二、问题分析:
百度地图开发在使用 SDK 各组间之前需初始化 context 信息,传入 ApplicationContext 信息。从问题看是由于没有做此初始引起。
检查发现manifest.xml中 <application> 标签中没有定义对应application。
三、解决方法:
1、定义application类
import android.app.Application;
import com.baidu.mapapi.SDKInitializer;
public class MapApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 在使用 SDK 各组间之前初始化 context 信息,传入 ApplicationContext
SDKInitializer.initialize(this);
}
}
2、将新定义的application部署到manifest.xml
3、重新编译运行,问题解决。