Eclipse开发Android应用时遇到的问题以及解决方法

前段时间完成了一个小项目:实现一个带有运动轨迹的计步器,并且在第三方接口百度地图上显示具体的位置和运动信息。


接触一些新的事物,总会遇到各种各样的问题。把之记录下来,希望可以帮助到一些跟我一样遇到同样问题的朋友们。


问题一:为了学习如何使用百度地图,我先看了百度提供的demo。但是在运行BaiduMapsApiDemo的时候遇到了很多问题。

点击基本地图功能选项,不能打开地图,弹出“key验证出错!请在AndroidManifest.xml文件中检查key设置的”的红色字提示。

原因以及解决方法:我申请key的时候填写的包名与demo的包名不对应。查看Mainfest文件里的包名package="baidumapsdk.demo",之后重新设置包名就可以了。

 

问题二:在模拟器上运行,第一次打开的时候可以正常显示地图,后来只显示网格。

原因以及解决方法:在手机上运行就正常了。我觉得可能是在模拟器上加载得比较慢导致的。

 

问题三:第一次在xml文件里写代码的时候,xml文件报错“Attribute is missing the Android namespace prefix”

原因以及解决方法:我写代码习惯在冒号后加一个空格、在等号左右空一格。但是在xml文件这样写是错误的,必须是像这样没有空格地写android:layout_width="fill_parent"

 

问题四:......cannot be resolved to a type

解决方法:一般情况下都是因为没有import相关的包。点击那一行错误提示左边的红色叉,就有import相关的包这个选项可以选。

 

问题五:关于fill_parent、match_parent、wrap_parent的含义

解决方法:查看资料

fill_parent:The view should be as big as its parent (minus padding). This constant is deprecated starting from API Level 8 and is replaced by match_parent.  

match_parent:The view should be as big as its parent (minus padding). Introduced in API Level 8.  

wrap_content:The view should be only big enough to enclose its content (plus padding). 

 

问题六:我想要实现页面的跳转,结果点击触发跳转的按钮时总是显示app已停止运行。

原因以及解决方法:(我忽略了一个很重要的步骤)我新写的Activity类没有添加到Mainfest文件的声明里。

 

问题七:我把实现定位相关的写好之后,跳转到定位的页面时总是显示北京的地图,并没进行定位。

原因以及解决方法:原因是没有在Mainfest中声明服务。把这个添加到Mainfest中就可以正常定位了。

<service

    android:name="com.baidu.location.f"

    android:enabled="true"

    android:process=":remote" >

</service>

 

问题八:隔两天再使用,结果sha1值变了,导致地图显示只能看到网格。

解决方法:要到api控制台重新设置sha1值。

心得:不要以为一切都不变,固执地下去不愿相信你眼前的事物时刻变化会很惨很惨的!(虽然我真的不能理解为什么就变了)

 

问题九:有时候把我定位到非洲去了。

原因以及解决方法:一开始使用wifi进行定位,然后wifi转到用移动数据就会立刻定位到非洲,然后立刻又定位回来。移动数据没有打开,导致切换的时候有问题。所以每次要打开移动数据再运行app。

 

问题十:关于百度坐标的偏移

原因:百度地图SDK采用的是百度自有的地理坐标系(bdll09),因此开发者在做位置标注的时候,需要将其他类型的坐标转换为百度坐标。简单地说,就是在百度地图上显示要使用百度坐标才会准确。

解决方法:使用百度地图提供的坐标转换接口

// 将GPS设备采集的原始GPS坐标转换成百度坐标  

CoordinateConverter converter  = new CoordinateConverter();  

converter.from(CoordType.GPS);  

// sourceLatLng待转换坐标  

converter.coord(sourceLatLng);  

LatLng desLatLng = converter.convert();


问题十一:option.setScanSpan(700);//设置发起定位请求的间隔时间为700ms

当我设置发起定位请求的间隔时间为700ms时,只能进行一次定位,走动时候就停止定位了。

原因以及解决方法:我猜想可能是间隔时间小于1000ms的时候会定位失效。

 

问题十二:考虑到用户没有打开GPS而导致软件崩溃的情况。

解决方法:加入警告框进行提示。跳转到用户的GPS设置界面。

 

问题十三:界面风格的一致性。

解决方法:主要采用这三种颜色进行设计#CCCCCC、#FFFFFF、#666699


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值