情況概述:
在維護項目中,為了適配個別全面屏手機,小豆 將targetSdkVersion從23升級為27,莫名爆出crash,導致app閃退,報錯如下:
1.png
查看錯誤得知:原來是發(fā)生了個無效狀態(tài)異常——只有全屏不透明的activity才可以設置方向,問題發(fā)生在SplashActivity.java上,主要是onCreate()方法,小豆按照繼承關系一層一層地查找,在父類activity確實使用了半透明,SplashActivity.java的主題是使用的全屏,style.xml如下:
image.png
解決問題
雖然找到錯誤問題,但是始終不懂,targetSdkVersion為23的時候完全沒有問題,升級后卻出現(xiàn)問題,于是開始瘋狂百度,使用網(wǎng)友的一些處理方法,可謂艱難險阻,耗時快一天,最后借鑒了一位博主的方法得以解決,修改如下:
image.png
并且引用setTheme(R.style.NoTranslucent);在SplashActivity的onCreate()方法的super.onCreate()之前,通過setTheme設置不帶半透明屬性的style。
總結(jié)
這個錯誤的原因就是:在Activity里主題設置了全屏且透明,并且該活動進行了橫豎屏切換配置,在安卓系統(tǒng)8.0以上會出現(xiàn)奔潰,是系統(tǒng)問題,為了修改,去掉其一即可。
這是小豆遇到的比較坑的問題了,紀錄一下。
這也是初入行業(yè)的小豆第一次寫技術文章,如果技術方面有寫得不對的,有需要改善的地方,希望大家評論糾正,謝謝大家。