使用百度地圖SDK,運行Demo還可以的,但是當用到自己的程序中就出現問題了:
報出異常如下:
- 07-27 10:31:59.501: E/AndroidRuntime(8282): FATAL EXCEPTION: main
- 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
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.app.ActivityThread.access$600(ActivityThread.java:156)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.os.Handler.dispatchMessage(Handler.java:99)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.os.Looper.loop(Looper.java:153)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.app.ActivityThread.main(ActivityThread.java:5297)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at java.lang.reflect.Method.invokeNative(Native Method)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at java.lang.reflect.Method.invoke(Method.java:511)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at dalvik.system.NativeStart.main(Native Method)
- 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
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.view.LayoutInflater.createView(LayoutInflater.java:613)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:274)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.app.Activity.setContentView(Activity.java:1881)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at com.Casper.subUI.Trans_Location.onCreate(Trans_Location.java:51)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.app.Activity.performCreate(Activity.java:5122)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): ... 11 more
- 07-27 10:31:59.501: E/AndroidRuntime(8282): Caused by: java.lang.reflect.InvocationTargetException
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at java.lang.reflect.Constructor.constructNative(Native Method)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at android.view.LayoutInflater.createView(LayoutInflater.java:587)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): ... 22 more
- 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.
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at com.baidu.mapapi.a.b(Unknown Source)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at com.baidu.mapapi.map.MapView.a(Unknown Source)
- 07-27 10:31:59.501: E/AndroidRuntime(8282): at com.baidu.mapapi.map.MapView.<init>(Unknown Source)
- 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文件中說明一下:
- <application
- android:name="com.Casper.ApplicationConfig.ApplicationConfig"
- android:debuggable="true"
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
android:theme="@style/AppTheme" >
遇到了和這個同樣的問題 就把這個轉載過來了:http://blog.csdn.net/u010428517/article/details/38168219?reload
