2015年5月19日星期二

解决Unfortunately,@#¥@#¥@ has stopped应用崩溃问题记录贴(持续更新)

开发APP时,经常会遇到,Unfortunately, Your app has stopped,这是一件扫兴的事情——又有Bug了——又有找半天还不一定能找到的Bug了。

今天又遇到一次,借助LogCat很快定位到错误,来整理一下吧。

看到unfortunately的时候,下意识看LogCat,之前已经设定了针对此应用的过滤器,只见刷刷一片红,就是姨妈血那种红。不用慌张,一个老鼠屎坏一锅汤,这么多异常大多是“牵一发而动全身”的效果,于是,机智的我很快在几十上百行里挑到了关键的几行,如下,

05-19 22:55:48.128: E/AndroidRuntime(18449): FATAL EXCEPTION: main
05-19 22:55:48.128: E/AndroidRuntime(18449): Process: com.example.fragmenttest, PID: 18449
05-19 22:55:48.128: E/AndroidRuntime(18449): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.fragmenttest/com.example.fragmenttest.MainActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class FramenLayout

逐行分析下吧,

致命异常在 main
.....
不能启动MainActivity活动,view.InflateException异常抛出:XML文件的第13行,错误的inflating class FramenLayout

FramenLayout是什么鬼东西,听都没听说过,赶紧定位到activity_main.xml文件,第13行,定睛一看,生生把<FrameLayout打成了<FramenLayout,还有结尾的</FramenLayout>。这是一个很狡猾的错误,<FrameLayout与</FramenLayout>对应,Eclipse不会主动识别这样的xml拼写错误,直到程序运行时才抛出异常。修改之,就正常了。

在stackOverflow逛的时候,看到一运用LogCat详细分析异常的帖子,链接在这儿,感兴趣的可以琢磨琢磨,http://stackoverflow.com/questions/3988788/what-is-a-stack-trace-and-how-can-i-use-it-to-debug-my-application-errors


2015.5.21更新

今天遇到两次。排除好久,一次是因为载入layout文件载入错了,一次是忘了把活动在AndroidManifest中注册了,真够笨的我。

2015.5.24更新

今日同学聚会烧烤,玩得非常尽兴。傍晚归来,因两日未敲代码,深觉惭愧,故习广播,再遇应用崩溃大BUG,信手解决。

BUG源头如下,Android系统为了保证安全,在程序需要访问一些系统关键信息,如本次访问系统网络情况,必须在配置文件中声明权限,否则程序会崩溃

详细记录请点击解决error receiving broadcast intent act=android.net.conn.connectivity_change引起的程序崩溃

没有评论:

发表评论