1. 程式人生 > >使用百度導航SDK問題整理-2015.09.14

使用百度導航SDK問題整理-2015.09.14

        如果只是使用百度SDK的單一功能,可以單獨下載,但如果是結合功能如,定位和導航,百度建議我們去下載相關功能的組合包連結:http://lbsyun.baidu.com/sdk/download,在這裡你選中你需要的功能下載,

下載後的lib下有我們選擇的全部lib,不需要單獨去新增,避免了庫之間的衝突;有一點要注意就是組合包與單獨下載的庫最好不要在同一個工程中使用,否則有可能引起庫衝突。


工程目錄結構:

在使用的過程中會有一些問題,在這樣記錄下來。

1、出現如下問題

09-12 17:10:09.620: W/ResponseProcessCookies(16561): Invalid cookie header: "Set-Cookie: BAIDUID=EA88C423695C9483E3C5059D30C999EF:FG=1; 
expires=Sun, 11-Sep-16 09:09:55 GMT; max-age=31536000; path=/; domain=.baidu.com; version=1". Unable to parse expires attribute: Sun
09-12 17:10:09.631: W/ResponseProcessCookies(16561): Invalid cookie header: "Set-Cookie: BAIDUID=EA88C423695C9483120D56E93FCC2CFA:FG=1; 
expires=Sun, 11-Sep-16 09:09:55 GMT; max-age=31536000; path=/; domain=.baidu.com; version=1". Unable to parse expires attribute: Sun
這個問題跟網路相關的,我測試的結果是使用公司Wifi會出現這個警告,作用SIM卡的資料連線沒有,只能估計是Wifi網路有訪問限制,如出現上述問題建議更換網路環境測試。

2、出現如下警告資訊

09-14 10:21:09.061: D/StatSDK(25717): null,can't find information for key:BaiduMobAd_CELL_LOCATION
09-14 10:21:09.061: D/getLocation cell:(25717): [10369,13181,-1]
09-14 10:21:09.061: D/StatSDK(25717): null,can't find information for key:BaiduMobAd_GPS_LOCATION
09-14 10:21:09.071: D/statsdk(25717): location: Location[gps 23.120855,114.501520 acc=43 et=+1d21h40m45s447ms alt=155.6999969482422 vel=0.0 {Bundle[mParcelledData.dataSize=40]}]
09-14 10:21:09.071: D/StatSDK(25717): null,can't find information for key:BaiduMobAd_WIFI_LOCATION
可以在AndroidManifest.xml中加入
<meta-data
            android:name="BaiduMobAd_CELL_LOCATION"
            android:value="true" />
        <meta-data
            android:name="BaiduMobAd_GPS_LOCATION"
            android:value="true" />
        <meta-data
            android:name="BaiduMobAd_WIFI_LOCATION"
            android:value="true" />
可以避免以上警告的出現。

3、在退出時出現如下問題

Activity com.adayome.bddemo.MainActivity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()?
 android.app.IntentReceiverLeaked: Activity com.adayome.bddemo.MainActivity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()?
 	at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:900)
 	at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:701)
 	at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1639)
 	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1619)
 	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1613)
 	at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:488)
 	at com.baidu.navisdk.vi.VDeviceAPI.setNetworkChangedCallback(VDeviceAPI.java:287)
 	at com.baidu.navisdk.jni.nativeif.JNITrajectoryControl.startRecord(Native Method)
 	at com.baidu.navisdk.jni.nativeif.JNITrajectoryControl.startRecord(JNITrajectoryControl.java:54)
at com.baidu.navisdk.adapter.base.TrajectoryManager.startRecord(TrajectoryManager.java:81)
 	at com.baidu.navisdk.adapter.BNRouteGuideManager.onCreate(BNRouteGuideManager.java:166)
 	at com.adayome.bddemo.bdNaviGuideActivity.onCreate(bdNaviGuideActivity.java:28)
 	at android.app.Activity.performCreate(Activity.java:5941)
 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2254)
 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2361)
 	at android.app.ActivityThread.access$800(ActivityThread.java:147)
 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
 	at android.os.Handler.dispatchMessage(Handler.java:102)
 	at android.os.Looper.loop(Looper.java:135)
 	at android.app.ActivityThread.main(ActivityThread.java:5233)
 	at java.lang.reflect.Method.invoke(Native Method)
 	at java.lang.reflect.Method.invoke(Method.java:372)
 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
在OnDestory中加入

VDeviceAPI.unsetNetworkChangedCallback();

4、在退出時還會報以下問題,待解決

Activity com.adayome.bddemo.MainActivity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()?
 android.app.IntentReceiverLeaked: Activity com.adayome.bddemo.MainActivity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()?
 	at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:900)
 	at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:701)
 	at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1639)
 	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1619)
 	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1613)
 	at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:488)
 	at com.baidu.navisdk.util.listener.PhoneStatusReceiver.initPhoneStatusReceiver(PhoneStatusReceiver.java:68)
 	at com.baidu.navisdk.BNaviModuleManager.initPhoneStateListener(BNaviModuleManager.java:205)
 	at com.baidu.navisdk.BNaviModuleManager.initListenersForMap(BNaviModuleManager.java:93)
 	at com.baidu.navisdk.adapter.BaiduNaviManager.init(BaiduNaviManager.java:546)
 	at com.adayome.bddemo.Fragment1.initNavi(Fragment1.java:345)
 	at com.adayome.bddemo.Fragment1.onCreate(Fragment1.java:287)
 	at android.support.v4.app.Fragment.performCreate(Fragment.java:1477)
 	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:893)
 	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
 	at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
 	at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
 	at android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:283)
 	at android.view.View.dispatchAttachedToWindow(View.java:13420)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2708)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2715)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2715)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2715)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2715)
 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1319)
 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1081)
 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5818)
 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
 	at android.view.Choreographer.doCallbacks(Choreographer.java:580)
 	at android.view.Choreographer.doFrame(Choreographer.java:550)
 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
 	at android.os.Handler.handleCallback(Handler.java:739)
 	at android.os.Handler.dispatchMessage(Handler.java:95)
 	at android.os.Looper.loop(Looper.java:135)
 	at android.app.ActivityThread.main(ActivityThread.java:5233)
at java.lang.reflect.Method.invoke(Native Method)
 	at java.lang.reflect.Method.invoke(Method.java:372)
 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
 Activity com.adayome.bddemo.MainActivity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()?
 android.app.IntentReceiverLeaked: Activity com.adayome.bddemo.MainActivity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()?
 	at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:900)
 	at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:701)
 	at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1639)
 	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1619)
 	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1613)
 	at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:488)
 	at com.baidu.navisdk.BNaviModuleManager.initSDCardListener(BNaviModuleManager.java:200)
 	at com.baidu.navisdk.BNaviModuleManager.initListenersForMap(BNaviModuleManager.java:92)
 	at com.baidu.navisdk.adapter.BaiduNaviManager.init(BaiduNaviManager.java:546)
 	at com.adayome.bddemo.Fragment1.initNavi(Fragment1.java:345)
at com.adayome.bddemo.Fragment1.onCreate(Fragment1.java:287)
 	at android.support.v4.app.Fragment.performCreate(Fragment.java:1477)
 	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:893)
 	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
 	at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
 	at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
 	at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
 	at android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:283)
 	at android.view.View.dispatchAttachedToWindow(View.java:13420)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2708)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2715)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2715)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2715)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2715)
 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1319)
 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1081)
 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5818)
 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
 	at android.view.Choreographer.doFrame(Choreographer.java:550)
 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
 	at android.os.Handler.handleCallback(Handler.java:739)
 	at android.os.Handler.dispatchMessage(Handler.java:95)
 	at android.os.Looper.loop(Looper.java:135)
 	at android.app.ActivityThread.main(ActivityThread.java:5233)
 	at java.lang.reflect.Method.invoke(Native Method)
 	at java.lang.reflect.Method.invoke(Method.java:372)
 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
(16644): baidu location service stop ...
 Activity com.adayome.bddemo.MainActivity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()?
 android.app.IntentReceiverLeaked: Activity com.adayome.bddemo.MainActivity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()?
 	at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:900)
 	at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:701)
 	at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1639)
 	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1619)
 	at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:495)
 	at com.baidu.navisdk.BNaviModuleManager.initNetworkListener(BNaviModuleManager.java:187)
 	at com.baidu.navisdk.BNaviModuleManager.initListenersForMap(BNaviModuleManager.java:91)
 	at com.baidu.navisdk.adapter.BaiduNaviManager.init(BaiduNaviManager.java:546)
at com.adayome.bddemo.Fragment1.initNavi(Fragment1.java:345)
 	at com.adayome.bddemo.Fragment1.onCreate(Fragment1.java:287)
 	at android.support.v4.app.Fragment.performCreate(Fragment.java:1477)
 	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:893)
 	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
 	at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
 	at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
 	at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
 	at android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:283)
 	at android.view.View.dispatchAttachedToWindow(View.java:13420)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2708)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2715)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2715)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2715)
 	at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2715)
 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1319)
 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1081)
 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5818)
 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
 	at android.view.Choreographer.doCallbacks(Choreographer.java:580)
 	at android.view.Choreographer.doFrame(Choreographer.java:550)
 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
 	at android.os.Handler.handleCallback(Handler.java:739)
 	at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
 	at android.app.ActivityThread.main(ActivityThread.java:5233)
 	at java.lang.reflect.Method.invoke(Native Method)
 	at java.lang.reflect.Method.invoke(Method.java:372)
 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
在OnDestory中加入程式碼
if (BaiduNaviManager.isNaviInited())
			BaiduNaviManager.getInstance().uninit();
雖然可以解決上面的問題,但會引起再次進入導航黑屏,就是
<service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:permission="android.permission.BAIDU_LOCATION_SERVICE"
            android:process=":remote" >
            <intent-filter>
                <action android:name="com.baidu.location.service_v2.2" >
                </action>
            </intent-filter>
        </service>
的問題,所以不建議加入uninit(),正在找解決辦法.......................

相關推薦

使用導航SDK問題整理-2015.09.14

        如果只是使用百度SDK的單一功能,可以單獨下載,但如果是結合功能如,定位和導航,百度建議我們去下載相關功能的組合包連結:http://lbsyun.baidu.com/sdk/download,在這裡你選中你需要的功能下載, 下載後的lib下有我們選擇的全

地圖SDK導航(路徑規劃+實時導航

裡面的demo寫的非常詳細 ,我主要說一下我個人遇到的問題以及對它的理解: 首先貼核心程式碼: 【路徑規劃】 private void startCalcRoute(int netmode) { // 獲取輸入的起終點

Android地圖SDK 導航初始化和地圖初始化引起的衝突

       如題,同樣是百度地圖SDK開發過程中遇到的一個問題,交代下背景:        開發了一款內嵌百度地圖的應用,因此裡面差不多將目前百度地圖SDK開放的主要功能都用到了,定位,地圖顯示,覆蓋物標示,POI搜尋,行程路線規劃,GPS導航。。等等都有。開發最開始用到

運用html常用標簽和css定位等學做模仿導航頁面

地圖 百度導航 技術分享 eight baidu 一個 nbsp ext align 導航部分文字鏈接,鼠標觸碰變顏色,除百度logo引用圖片外,其它均代碼編寫。註釋部分是一開始用的百度一下截圖做的按鈕,後來用div填充顏色寫了一個按鈕。效果圖如下。 HTML代碼如下:

基於地圖SDK和Elasticsearch GEO查詢的地理圍欄分析系統(3)-前端實現

方便 復制 類型 復制代碼 自動跳轉 rar 窗口 stack delete 轉載自:http://www.cnblogs.com/Auyuer/p/8086975.html MoonLight可視化訂單需求區域分析系統實現功能:   在現實生活中,計算機和互聯網迅速發展,

地圖sdk使用

maps ase 一體化 class lib sdk map 申請 系統 1.android開發百度地圖定位,我怎麽老是定到幾內亞灣 權限問題,首先安卓6.0之後的Android的系統需要動態申請權限。 然後百度地圖的sdk的不同功能,申請的權限不同,每個功能都需要看官方文

地圖sdk sha1秘鑰獲取有種想吐的趕腳

src andro files inf com admin oid file http 擼代碼坐的腰算背疼還只是弄一個不是項目裏邊需要的升級版本的so 日 需要sha1 指紋秘鑰,還有項目包, 才能用百度地圖sdk 這個找sha1 獲取廢了20分鐘, 顯示全盤找keyt

iOS·採用第三方(地圖SDK)實現定位等功能開發

 陳滿iOS  關注 2017.05.01 01:06* 字數 2212 閱讀 6818評論 7喜歡 133 1.申請金鑰 首先,申請一個baidu賬號,接著進入新建金鑰入口申請成為baidu地圖開發者,填寫相關開發者資訊和簡訊驗證碼。接

android 接入地圖sdk

專案需求: 接入地圖 定位位置 設定百度地圖上的各種圖示 載入方格的問題 接入地圖 1.建立應用 接入的是百度地圖,首先去百度地圖開放平臺上新增應用。在http://lbsyun.baidu.com/apicon

導航5.0之後的坑

百度地圖新舊版本里有很多衝突,特別是定位和導航就會報許多令人摸不著頭腦的錯誤,比如下面這些常見的: mapsdkvi.com.gdi.bgl.android.java.EnvDrawText, Multiple dex files define Lcom/ba

地圖SDK配置與使用

在配置百度地圖 SDK 和使用時,發現官網上的教程並不是那麼好用,而且容易出現定位回撥裡 BDLocation.getLocType() == 162 這個問題,官網只是說 SO 配置出現異常,並沒有明確問題所在;如果你也遇到了,請點這個連結:BDLocation.getLocType() == 1

仿導航

效果圖 程式碼 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" co

Android 錯誤 導航初始化失敗UnsatisfiedLinkError: dlopen failed: library libgnustl_shared.so

在部分機子 百度導航初始化失敗 cpu 架構 AArch64 processor rev 4 百度地圖.UnsatisfiedLinkError: dlopen failed: library libgnustl_shared.so 解決辦法 在app ->build.g

Android整合定位SDK實現獲取定位地址

應用場景:實現APP的網路定位功能 1.整合SDK 去百度建立應用,獲取到AK,下載定位SDK,把裡面的jar包新增到libs下。其他os檔案就放在main下新建的jniLilbs裡,如圖: 2.程式碼貼出 package com.jin.baidudemo;

地圖SDK整合定位,衛星地圖

其中兩種整合方式基本相同 1.百度地圖第三方SDK的開放平臺建立應用 2.下載官方的SDK 3.複製到專案的libs目錄下 4.但這樣工程並不會自動載入libs下的so檔案,需配置so檔案的路徑為該libs路徑,關聯所有地圖SDK的so檔案 App下的groud.build的

使用定位SDK獲取當前位置的資訊

                1、AndroidManifext.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"   

mui使用地圖sdk及定位方法

一、使用前配置:參考http://ask.dcloud.net.cn/article/29        注意事項:     (1)HBuilder預設打包使用的簽名為"BA:AD:09:3A:82:82:9F:

【月入41萬】Mono For Android中使用地圖SDK

    藉助於Mono For Android技術,.Net開發者也可以使用自己熟悉的C#語言以及.Net來開發Android應用。由於Mono For Android把Android SDK中絕大部分類庫都已經實現,基本直接參考Java開發Android的書就可以掌握Mono for android技術。

地圖SDK(二)——簡單地圖和定位demo

MainActivity程式碼如下:package com.example.administrator; import android.content.Intent; import android.os.Bundle; import android.support.v7.ap

定位sdk的api使用時獲取地址資訊為null的原因

我的情況是這樣的  清單檔案中加了service 加了key的值 在activity的主執行緒中使用了百度定位SDK的api 截圖如下  寫了一個類繼承了BDAbstractLocationListener類 實現了他的方法 設定了SDK的引數 但是我前一天晚上還可以顯示資料 第二天早上起來就顯示為null