java.lang.RuntimeException: Unable to start activity ComponentInfo{net.lm.sun_set/net.lm.sun_set.Su

在做Android的属性动画的时候,其中一个项目报错问题,程序启动后闪退,查看logcat的,报错信息如下:

02-08 09:40:59.701 5061-5061 / net.lm.sun_set E / AndroidRuntime:致命异常:主
                                                              进程:net.lm.sun_set,PID:5061
                                                              java.lang.RuntimeException:无法启动活动ComponentInfo {net。 lm.sun_set / net.lm.sun_set.SunSetActivity}:java.lang.IllegalStateException:您需要在此活动中使用Theme.AppCompat主题(或后代)。
                                                                  在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2193)
                                                                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2243)
                                                                  在android.app.ActivityThread.access $ 800(ActivityThread.java:135)
                                                                  在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)
                                                                  在android.os.Handler.dispatchMessage(Handler.java:102)
                                                                  在android .os.Looper.loop(Looper.java:136)
                                                                  at android.app.ActivityThread.main(ActivityThread.java:5019)
                                                                  at java.lang.reflect.Method.invokeNative(Native Method)
                                                                  在
                                                                  com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)
                                                                  at com.android.internal.os.ZygoteInit.main java.lang.reflect.Method.invoke(Method.java:515)(ZygoteInit.java:595)
                                                                  在dalvik.system.NativeStart.main(本地方法)
                                                               引起的:java.lang.IllegalStateException:您需要使用Theme.AppCompat主题(或后代)与此活动。
                                                                  at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:356)
                                                                  at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:325)
                                                                  at android.support.v7.app.AppCompatDelegateImplV9.setContentView (AppCompatDelegateImplV9.java:286)at
                                                                  android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                                                                  at net.lm.sun_set.SingleFragmentActivity.onCreate(SingleFragmentActivity.java:15)
                                                                  在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2157)
                                                                  android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
                                                                  android.app.Activity.performCreate(Activity.java:5231)
                                                                  。
                                                                  在android.app.ActivityThread.access上的ActivityThread.handleLaunchActivity(ActivityThread.java:2243)  $ 800(ActivityThread.java:135) 
                                                                  在android.android.os.Handler.dispatchMessage
                                                                  (Handler.java:102) 
                                                                  android.os.Looper.loop(Looper.java:136)  在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196) 
                                                                  。                                                                  java.lang.reflect.Method.invoke(Method.java:515)
                                                                  处的java.lang.reflect.Method.invokeNative(Native Method)的  app.ActivityThread.main(ActivityThread.java:5019 
) 
                                                                  at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779) 
                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
                                                                  at dalvik.system.NativeStart.main(Native方法) 

02-08 09:40:59.711 506-516 /?W / ActivityManager:强制整理活动net.lm.sun_set / .SunSetActivity



我的判断是在OnCreate方法里的的setContentView(R.layout。activity_fragment); 控件写错了,改了之后依然报错再次查阅相关资料和对我写的程序分析

这个错误是在做一个机器人的多屏幕设计的时候运行时发生的。

这个错误说的很清楚,无法启动组件详情。并在下面报出了com.example.newsreader.NewsReaderActivity.onCreate(NewsReaderActivity.java:79),在onCreate初始化的时候,setContentView(R.layout.main_layout) ;的时候,报错了于是我在这行打断点之后发现,这行的时候,main_layout并不是我设置的那个布局页面,于是我开始有些明白了,因为我的项目是为了适配所有的。屏幕大小的,所以我的这个main_layout并不是一个具体的XML布局,而是指定的一系列布局的引用。当我改成具体的简单无误XML布局后,该错误就没有了。

后来,经查阅资料发现,我已知的,有下面几类情况发生时,会报出这个错误:

1.setContentView()中指定的布局对象不是具体布局文件,而是一个引用,而该引用或许存在错误。系统加载时因不能分辨故而运行时异常

2.指定的XML是一个具体的布局文件,但是布局文件写的不对,如标签结束不对,<ImageView的>标签的结束不对,即组件使用方式不对

3.引用的资源未初始化,导致运行时异常,如R.string.XXX或者R.resource.XXX

4.指定的布局的xml既是具体的一个XML,其中的组件也没错,再来引用资源也是对的,那么,唯一可能的就是这个布局视图中引用的图片的尺寸太大,设备无法识别,固然运行时异常。

5.在主活动中调用

如果MainActivity是调用的本地的AppActivity,在做这个动画的时候,就不会产生效果,出现闪退现象。只有你做Fragment继承它的FragmentActivity,才能见效。

最后其实应该是


所以更改后程序就能运行了!




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liumce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值