使用百度地图SDK,运行Demo还可以的,但是当用到自己的程序中就出现问题了:

报出异常如下:

 

  1. 07-27 10:31:59.501: E/AndroidRuntime(8282): FATAL EXCEPTION: main  
  2. 07-27 10:31:59.501: E/AndroidRuntime(8282): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Casper.UI/com.Casper.subUI.Trans_Location}: android.view.InflateException: Binary XML file line #6: Error inflating class com.baidu.mapapi.map.MapView  
  3. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306)  
  4. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)  
  5. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.app.ActivityThread.access$600(ActivityThread.java:156)  
  6. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)  
  7. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.os.Handler.dispatchMessage(Handler.java:99)  
  8. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.os.Looper.loop(Looper.java:153)  
  9. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.app.ActivityThread.main(ActivityThread.java:5297)  
  10. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at java.lang.reflect.Method.invokeNative(Native Method)  
  11. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at java.lang.reflect.Method.invoke(Method.java:511)  
  12. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)  
  13. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)  
  14. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at dalvik.system.NativeStart.main(Native Method)  
  15. 07-27 10:31:59.501: E/AndroidRuntime(8282): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class com.baidu.mapapi.map.MapView  
  16. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.view.LayoutInflater.createView(LayoutInflater.java:613)  
  17. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)  
  18. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)  
  19. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)  
  20. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)  
  21. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.view.LayoutInflater.inflate(LayoutInflater.java:352)  
  22. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:274)  
  23. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.app.Activity.setContentView(Activity.java:1881)  
  24. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at com.Casper.subUI.Trans_Location.onCreate(Trans_Location.java:51)  
  25. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.app.Activity.performCreate(Activity.java:5122)  
  26. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)  
  27. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)  
  28. 07-27 10:31:59.501: E/AndroidRuntime(8282):     ... 11 more  
  29. 07-27 10:31:59.501: E/AndroidRuntime(8282): Caused by: java.lang.reflect.InvocationTargetException  
  30. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at java.lang.reflect.Constructor.constructNative(Native Method)  
  31. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at java.lang.reflect.Constructor.newInstance(Constructor.java:417)  
  32. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at android.view.LayoutInflater.createView(LayoutInflater.java:587)  
  33. 07-27 10:31:59.501: E/AndroidRuntime(8282):     ... 22 more  
  34. 07-27 10:31:59.501: E/AndroidRuntime(8282): Caused by: java.lang.IllegalStateException: you have not supplyed the global app context info from SDKInitializer.initialize(Context) function.  
  35. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at com.baidu.mapapi.a.b(Unknown Source)  
  36. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at com.baidu.mapapi.map.MapView.a(Unknown Source)  
  37. 07-27 10:31:59.501: E/AndroidRuntime(8282):     at com.baidu.mapapi.map.MapView.<init>(Unknown Source)  
  38. 07-27 10:31:59.501: E/AndroidRuntime(8282):     ... 25 more  


在网上查了一天的,没办法解决。

 

网上出现这样错误的原因有很多:

一、没有把百度的.jar包导进来,因为使用的百度地图是第三方的,需要把它写到一个自己创建的libs文件夹下,还有把里面的.os文件也放到下面。

二、在继承FragmentActivity的要使用android.support.v4.app.FragmentActivity;而不是使用android.app.FragmentActivity.

三、因为没有编译成功的原理,有时候需要将工程clean一下

四、没有将申请百度地图key放到Manifest.xml文件中,那样根本不可能使用的。

但是我的错误都不是上面的问题,在百度地图Demo中有一个Application的类,那是一个配置整个application的类,使用的时候一定要定义这个类,同时还要把这个类放到Manifest.xml文件中说明一下:

 

    1. <application  
    2.         android:name="com.Casper.ApplicationConfig.ApplicationConfig"  
    3.         android:debuggable="true"  
    4.         android:allowBackup="true"  
    5.         android:icon="@drawable/ic_launcher"  
    6.         android:label="@string/app_name"  

        android:theme="@style/AppTheme" >
遇到了和这个同样的问题 就把这个转载过来了:http://blog.csdn.net/u010428517/article/details/38168219?reload