android 8.0 应用启动崩溃?

          android8.0正式版已经出了几个月了,当然国内手机如果要升级到8.0可能还需要些时日。但是我们有模拟器呀,所以就想让自己的应用在8.0的系统上面跑一下,前提是得将应用的targetSdkVersion改为27了,否则的话一些8.0的要求不会对app起作用。

          然后就下载了一个android 8.0 系统的模拟器,像往常一样子开始运行了,但是已启动就crash了,oh my god,在错误日志中看到了如下的一句信息;Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation,意思就是“只有不透明的全屏activity可以自主设置界面方向”,是的,我们的启动页面是设置了透明,同时也设置了屏幕方向为竖向,首先我们的orientation一定是要设置的了,所以那就只有不让activity透明了,但是当时为啥要让启动页面透明呢?就是为了解决应用启动时候黑屏或者白屏,所以现在要做的就是不让activity透明且让其启动时候不会有黑屏或者白屏了,有同学说直接用另外一种方式呀,就是给启动页面的style设置一个背景图片呀,但是样子在有虚拟返回键的手机上是有问题的,点击应用之后然后当启动页面展示时候,图片的尺寸会有变化,方便的同学可以试试这种方式,所以如果要使用这种方式需要适配虚拟返回键,不是一种特别好的方式。

         其实又回到了最初的问题,为啥应用启动会有黑屏或者白屏呢?这是因为用户点击应用图标之后,在应用初始化完成之前会展示一个默认的window,而这个preview window的样式取决于自己启动页的theme是怎样的了,如果是light的就是白屏,如果是black的就是黑屏了。

         所以说我们直接禁用这个默认动画不就好了么?所以将原来的windowIsTranslucent改为windowDisablePreview就能起到一样子的效果了,且应用不会崩溃了。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值