看到的唯一崩潰信息:
E/SurfaceView: Exception configuring surface java.lang.NullPointerException: Attempt to read from field 'android.view.Surface android.view.ViewRootImpl.mSurface' on a null object reference
at android.view.SurfaceView.setParentSpaceRectangle(SurfaceView.java:838)
at android.view.SurfaceView.surfacePositionLost_uiRtSync(SurfaceView.java:958)
這個(gè)報(bào)錯(cuò)貌似一直是存在的痕支,不清楚 sdk 在切換橫豎屏?xí)r做了什么啃勉。
由于App使用的官方的夜間模式方案埠巨,而這個(gè)問題出現(xiàn)的情景是:夜間模式下义辕,對(duì)<video/>進(jìn)行切換橫屏操作虾标,發(fā)生 Crash。而普通模式下灌砖,切換橫屏并不會(huì)發(fā)生Crash璧函。
所以說,聚焦到了夜間模式時(shí)基显,我們干了什么蘸吓。
在官方文檔中,涉及到接入的并沒有對(duì)夜間模式方案進(jìn)行特殊的聲明撩幽,所以說库继,我們默認(rèn)認(rèn)為夜間模式并不會(huì)對(duì)x5造成影響。
在文檔中提到
兼容視頻播放:
享受頁面視頻的完整播放體驗(yàn)需要做如下聲明:
頁面的Activity需要聲明android:configChanges="orientation|screenSize|keyboardHidden"
這個(gè)聲明是并不會(huì)影響到夜間模式切換,我們需要加上一個(gè)聲明宪萄,最終方案是加上uiMode: 用戶界面模式發(fā)生了變化 — 這可能是因用戶將設(shè)備放入桌面/車載基座或夜間模式發(fā)生變化所致艺谆。 請(qǐng)參閱 UiModeManager。
最終解決方案: android:configChanges="orientation|keyboardHidden|keyboard|screenSize|uiMode"