APP Scode码校验失败
首先,当应用出现如下错误时,为APP Scode码校验失败
Line 853: 11-02 16:27:11.529 E/baidumapsdk(24212): Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败
Line 9527: 11-02 16:27:27.889 E/baidumapsdk(24512): Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败
Line 13984: 11-02 16:27:35.989 E/baidumapsdk(24735): Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败
解决方案:
需要检查一下百度API_KEY是否正确匹配,若有问题可以重新申请一下。
退出百度地图时应用crash
场景如下:在应用A通过Icon点击跳转到百度地图定位页面(自己封装MapView实现),返回时,应用A异常crash退出。
异常日志如下:
10-31 17:22:11.977 D/baidu_location_service(29564): baidu location service stop ...
10-31 17:22:12.007 I/Process (29564): Sending signal. PID: 29564 SIG: 9
10-31 17:22:12.096 I/WindowState( 2102): WIN DEATH: Window{2ca4ddb4 u0 com.mcptt/com.mcptt.main.MainActivity}
10-31 17:22:12.096 D/WifiService( 2102): Client connection lost with reason: 4
10-31 17:22:12.105 I/ActivityManager( 2102): Process com.mcptt (pid 29564) has died
问题原因:
1.在Manifest中配置Service时,没有使用android:process=”:remote”属性。正常应该是使用该属性的。
remote属性会将Service放到一个独立的进程。
除非特殊情况下,没使用remote,此时就具备了问题出现的第一个条件了。
2. 在配置百度地图的参数时,有如下属性:
LocationClientOption option = new LocationClientOption();
option.setIgnoreKillProcess(false);// 可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
//可选,定位SDK内部是一个service,并放到了独立进程。
//设置是否在stop的时候杀死这个进程,默认(建议)不杀死,即setIgnoreKillProcess(true)
从上面说明可以看出,setIgnoreKillProcess默认为true,不杀死该进程。设置为false,则会杀死该进程,而从第一条可以说明没有起独立的remote进程,此处又要杀死remote进程,所以就出了问题。
解决方案:
设置:setIgnoreKillProcess(true),或注释掉此行代码。