Android之“Unfortunately,xxx has stopped!”

初学Android遇到Unfortunately,xxx has stopped!真是一件让人头疼的事情,下面就遇到的两种可能情况给出解决方案。通常遇到的情况在于由一个Activity跳转至另一个Activity时发生。

错误截图如下:

当遇到这种情况后请先查看你的logcat日志。然后看一看是否属于下面的情况。

--------------------------------------------------------------------------------

第一种:

其中一种错误日志包含有类似如下的语句:

android.content.ActivityNotFoundException: 

Unable to find explicit activity class {test.xxx/test.xxx.xxx}; have you declared this activity in your AndroidManifest.xml?

意思就是:

找不到Activity异常。

不能找到xxx类Activity,并且询问你你是否已经声明了你的Activity在AndroidManifest.xml文件中。这种情况下很有可能是你的某一个要跳转的Activity没有在Activity在AndroidManifest.xml中进行声明。声明格式如下:

  1. <application>  
  2.   
  3. <activity  
  4.   
  5. android:name="test.activity.ResultActivity"  
  6.   
  7. android:label="@string/nickname"/>  
  8.   
  9. </application>  

    其中test.activity.ResultActivity是你的Activity名称,这里你最好使用eclipse的提示功能然后选择对应的Activity名称。当然你也可以缩写为.ResultActivity这时要注意,那个点不能少。除此之外Activity的声明要放在<application></application>中。

--------------------------------------------------------------------------------

    第二种:

    同样的查看Logcat,如果日志中包括类似下面的提示:

    java.lang.RuntimeException: 

    Unable to start activity  ComponentInfo{xxx}: java.lang.NumberFormatException:  Invalid int:"factorFirStr"

    意思就是:运行时异常。

    不能够读取组件信息,大括号内是出现异常的组件。具体错误是数据格式异常,最后给出了无效的整型变量"factorFirStr"(当然这个变量在这里只是个例子)。

    那么解决的方法就是处理好这个变量。所以找bug是就从这个变量或者与这个变量相关的地方找。错误基本上可以肯定出现在这儿。看看是不是哪里的语法什么错了,还是单词拼写错误,或是不该加引号的加了引号等等,这些大多是由于不信心造成。

    这里有时候还会提示......Invalid int: "null",这说明你的Activity在传递数据的过程中某个或几个数据值为空类型,也就是值没有传递成功,这是你可以考虑一下是不是Intent在传递过程中哪里出现了不对。

--------------------------------------------------------------------------------

第三种:

logcat显示:

java.lang.RuntimeException:

Unable to instantiate activity ComponentInfo{test.androidstudy05/test.androidstudy05.ThirdActivity}: java.lang.ClassCastException: test.androidstudy05.ThirdActivity cannot be cast to android.app.Activity
提示为提供activity组件信息,不能够启动到android.app.Activity

问题可能是你要跳转的类未继承Activity,你可以尝试检查一下你的类是否继承了Activity。在你继承了类Activity之后你必须引入包android.app.Activity,而这里提示不能够投射到android.app.Activity,也就是说你可能未继承Activity。

posted @ 2013-08-05 09:32  KillerLegend  Views(28856)  Comments(0Edit  收藏  举报