原由:
如把targetsdkversion調(diào)成26以上莲镣,并且Activity主題設(shè)為透明双仍,而又指定了activity屏幕的方向的話刹孔,在Android8.0的手機(jī)上會直接拋出RunRuntimeException異常荡短,并且打印的錯誤信息里面會有這段話:"Only fullscreen opaque activities can request orientation "
安卓8.0版本時為了支持全面屏丐枉,增加了一個限制:如果是透明的Activity,則不能固定它的方向掘托,因?yàn)樗姆较蚱鋵?shí)是依賴其父Activity的(因?yàn)橥该鳎┦萸隆H欢@個bug只有在8.0中有,8.1中已經(jīng)修復(fù)闪盔。
具體crash有兩種:
1沼本、如果Activity的主題為透明,在manifest文件中指定了一個方向锭沟,則在onCreate中crash
2抽兆、如果Activity的主題為透明,調(diào)用setRequestedOrientation方法族淮,則crash
解決:
方案1辫红、targetsdkversion降低到26及以下
方案2、對項(xiàng)目中的activity做一次篩查祝辣,避免指定透明主題的activity同時又指定了方向