android百度地图开发遇到的错误及解决方法

来源:互联网 发布:java ant 压缩文件 编辑:程序博客网 时间:2024/05/07 02:29

         最近在做公交查询方面的项目,本来公司要求用Google Map的,但是Google Map android的V1版本已经不允许申请Key了,V2可以申请但是必须是谷歌原生Rom,并且手机必须带有 google play service这两点限制了国内大多数手机,所以又重新选择了百度地图。百度地图4.2开发的时候首先申请key不必说了。下面是我项目中出现的报错,以及我找到的解决方法。 我准备把这个项目中所有关于百度地图的报错做成系列,当然如果有各位博友如果有更好的解决办法,欢迎及时指出。


06-25 02:50:27.080: W/dalvikvm(1019): threadid=1: thread exiting with uncaught exception (group=0x40015560)

06-25 02:50:27.110: E/AndroidRuntime(1019): FATAL EXCEPTION: main
06-25 02:50:27.110: E/AndroidRuntime(1019): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cbss.activity/com.cbss.activity.RouteMapActivity}: android.view.InflateException: Binary XML file line #40: Error inflating class com.baidu.mapapi.map.MapView
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.os.Handler.dispatchMessage(Handler.java:99)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.os.Looper.loop(Looper.java:123)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.app.ActivityThread.main(ActivityThread.java:3683)
06-25 02:50:27.110: E/AndroidRuntime(1019): at java.lang.reflect.Method.invokeNative(Native Method)
06-25 02:50:27.110: E/AndroidRuntime(1019): at java.lang.reflect.Method.invoke(Method.java:507)
06-25 02:50:27.110: E/AndroidRuntime(1019): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-25 02:50:27.110: E/AndroidRuntime(1019): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-25 02:50:27.110: E/AndroidRuntime(1019): at dalvik.system.NativeStart.main(Native Method)
06-25 02:50:27.110: E/AndroidRuntime(1019): Caused by: android.view.InflateException: Binary XML file line #40: Error inflating class com.baidu.mapapi.map.MapView
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.view.LayoutInflater.createView(LayoutInflater.java:518)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
06-25 02:50:27.110: E/AndroidRuntime(1019): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.app.Activity.setContentView(Activity.java:1657)
06-25 02:50:27.110: E/AndroidRuntime(1019): at com.cbss.activity.RouteMapActivity.onCreate(RouteMapActivity.java:32)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
06-25 02:50:27.110: E/AndroidRuntime(1019): ... 11 more
06-25 02:50:27.110: E/AndroidRuntime(1019): Caused by: java.lang.reflect.InvocationTargetException
06-25 02:50:27.110: E/AndroidRuntime(1019): at java.lang.reflect.Constructor.constructNative(Native Method)
06-25 02:50:27.110: E/AndroidRuntime(1019): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
06-25 02:50:27.110: E/AndroidRuntime(1019): at android.view.LayoutInflater.createView(LayoutInflater.java:505)
06-25 02:50:27.110: E/AndroidRuntime(1019): ... 21 more
06-25 02:50:27.110: E/AndroidRuntime(1019): Caused by: java.lang.IllegalStateException: you have not supplyed the global app context info from SDKInitializer.initialize(Context) function.
06-25 02:50:27.110: E/AndroidRuntime(1019): at com.baidu.mapapi.a.b(Unknown Source)
06-25 02:50:27.110: E/AndroidRuntime(1019): at com.baidu.mapapi.map.MapView.a(Unknown Source)
06-25 02:50:27.110: E/AndroidRuntime(1019): at com.baidu.mapapi.map.MapView.<init>(Unknown Source)
06-25 02:50:27.110: E/AndroidRuntime(1019): ... 24 more

06-25 02:50:28.590: I/Process(1019): Sending signal. PID: 1019 SIG: 9


上面的这个报错发生的原因可能有两点:

        第一:你可能在项目中使用了默认的Application,百度地图API没有能够初始化。解决办法是:自定义一个xxxApplication类继承自android.app.Application;然后在xxxApplication中复写onCreate()方法,在onCreate()方法中加上这么一句代码SDKInitializer.initialize(this)。

        第二:就是你可能已经自定义过Application,但是没有在android manifest中声明,声明的方式就是在application标签的属性中加入android:name属性,用name属性关联你定义的Application.



1 0