Android app targetSdk升级到27碰到的一个bug补充说明

Android AUmaWSsSoi 4周前 (08-22) 63次浏览 0个评论
文章目录[隐藏]

完美解决google nexus设备全面屏主题crash问题

前面有一篇文章,记录了我在app升级到targetSdk 27中,出现的bug,文章位于 http://javaexception.com/archives/184

问题很奇怪,只在google nexus上出现,经过对特定的关键词搜索,在stackoverflow上找到了一篇有价值的文章 https://stackoverflow.com/questions/48072438/java-lang-illegalstateexception-only-fullscreen-opaque-activities-can-request-o

在我的app中,设置的全屏主题样式如下:

<style name="AppTheme.NoActionBar.Fullscreen" parent="AppTheme.NoActionBar">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@android:color/transparent</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowFullscreen">true</item>
</style>

这个回答https://stackoverflow.com/a/52964692/5279354 下面有一个很有价值的评论回复。

To anyone else who stumbles upon this “fix” I had to set <item name="android:windowIsTranslucent">false</item> and also had to set <item name="android:windowIsFloating">false</item> before it would work.

按照这个说法,需要调整下全屏的主题样式,修改后的结果是

<style name="AppTheme.NoActionBar.Fullscreen" parent="AppTheme.NoActionBar">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@android:color/transparent</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowIsTranslucent">false</item>
    <item name="android:windowIsFloating">false</item>
</style>

到此终于完美的解决问题。修改样式后,app的targetSdk是27以及以上,都不会再导致google nexus系列的设备crash。


java问与答 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:http://javaexception.com/archives/203
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址