由于本人一直是个菜鸟,在安卓开发的学习过程中总是遭遇到各种各样莫名其妙的报错,
在此可能无法一一列举出来(一个原因是时间久远得不记得了,另一个是多得记忆内存溢出了。。。),
好吧,既然这样我就把最近新鲜的错误给记录一下以作警示。
1.AndroidMainfest.xml的Activity和Service注册问题
在工程中往往要用到很多Activity和Service,如果你的Activity或者Service不是在Package上右键
New -> Other -> Android / Android Object 里面选择新建Activity或Service,
那么你就需要手动修改AndroidMainfest.xml文件,添加:
<activity android:name="xx.xx.ActivityClassName" ></activity>
其中xx.xx是你新建的文件所在包名,后面跟着你的Activity文件名。同样service也要添加:
<service android:name="xx.xx.ServiceClassName" ></service>
2.Permission Deny
在Android的设计中,资源的访问或者网络连接,要得到这些服务都需要声明其访问权限,否则将无法正常工作。
在Android中这样的权限有很多种,用到相应的权限需要在AndroidMainfest.xml中加入相应权限,比如网络访问权限:
<uses-permission android:name="android.permission.INTERNET"/>
下面的网址列出了安卓几乎所有的权限及介绍:
http://www.cnblogs.com/classic/archive/2011/06/20/2085055.html
3.非主线程更新UI的错误
当你的程序在需要刷新某个界面UI时出现崩溃报错,并且查看LogCat信息发现下面的内容:
E/AndroidRuntime(2899): android.view.ViewRootImpl$CalledFromWrongThreadException:
Only the original thread that created a view hierarchy can touch its views.
从这句话你便可看出是刷新UI不在Activity主线程中执行导致的,解决方法:
使用主线程创建的handler执行handler.post(Runnable),在Runnable的run()方法里写更新UI的操作。