版权声明:本文为xing_star原创文章,转载请注明出处!html
本文同步自http://javaexception.com/archives/203java
前面有一篇文章,记录了我在app升级到targetSdk 27中,出现的bug,文章位于 http://javaexception.com/archives/184 。android
问题很奇怪,只在google nexus上出现,通过对特定的关键词搜索,在stackoverflow上找到了一篇有价值的文章 https://stackoverflow.com/questions/48072438/java-lang-illegalstateexception-only-fullscreen-opaque-activities-can-request-oapp
在个人app中,设置的全屏主题样式以下:this
<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 下面有一个颇有价值的评论回复。google
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.
按照这个说法,须要调整下全屏的主题样式,修改后的结果是url
<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。spa