java.lang.RuntimeException: Unable to instantiate activity

今天发现自己的APP在AS中调试是可以正常使用的,但是将APK复制到手机中,发现出现闪退的问题。
从Log中有下面的错误:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo

   根据网上查到三种情况,但是对比代码没有发现什么问题。 
   解决办法:重新打开项目,clean project一下,重新build APK,然后将APK复制到手机中就可以了。
   根本原因: 第一个APK是debug过程中生成的APK,而Debug是选择Instant Run。

不能实例化activity有如下三种情况:
1.没有在Manifest.xml 清单中注册该activity,或者在创建完activity后,修改了包名或者activity的类名,而配置清单中没有修改,造成不能实例化。
2.自己新建了一个包,而注册时候依然用的默认包,例如,默认包是com.ghg.Dao包,你新建了一个com.ghg.DaoImpl包,并在此包中写了个FirstActivity,在manifest.xml中注册时你写的是<activity android:name=".FirstActivity"/>,此时相当于你在的类注册到了默认包中,系统在默认包中是找不到的,因为你的FirstActivity在com.ghg.DaoImpl包下,所以你注册时应写成包名加类名,如:<activity android:name="com.ghg.DaoImpl.FirstActivity";这样系统才能在指定的包中找到对应的类。
3.还用一种就是你的FirstActivity定义成了抽象类,这种情况好像一般人不会犯。
如果上述三种情况都考虑到了,还会抛出此异常,那么就查看一下activity类里是否同时存在这个类的构造函数和oncreate(),如果是,那么删除构造函数试试,并把初始化放到
oncreate()中试试。

增加第4种:
项目代码移动另外的目录中,需要将app/build目录删除,然后重新编译就可以了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,791评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,726评论 19 139
  • 一转眼,我已经坚持慧儿发给我练马甲线的课程已有2个周期了✌️。我一直以为以我现在忙绿的状态,要完成,几乎是...
    迭代凤儿阅读 955评论 0 1
  • 很久以前就想写一本关于自己的书,可是无奈自己太小,写了大多看不懂,也想不出可以吸引人的题目,最近看了《郑爽的书》,...
    李菲凡阅读 2,206评论 0 1
  • 摘要:对于2017云栖大会,更多的是感动,感动与科技的进步,感动于大家对于技术的不懈追求,感动于我们所处的时代,处...
    肆虐的悲傷阅读 1,267评论 0 0