# 1. 非全屏Activity不能設(shè)置orientation
Error:
java.lang.IllegalStateException: Only fullscreen activities can request orientation
原因:
如果一個(gè)Activity的Style符合下面三個(gè)條件之一撰豺,認(rèn)為不是“fullscreen”:
“windowIsTranslucent”為true污桦;
“windowIsTranslucent”為false匙监,但“windowSwipeToDismiss”為true小作;
“windowIsFloating“為true躲惰;
綜上可見(jiàn)变抽,這個(gè)改動(dòng)的目的是想阻止非全屏的Activity鎖定屏幕旋轉(zhuǎn),因?yàn)楫?dāng)前Activity是透明的诡宗,浮動(dòng)的或可滑動(dòng)取消的击儡,是否鎖屏應(yīng)該由全屏的Activity決定阳谍,而不是并沒(méi)有全部占據(jù)屏幕的Activity決定。
Ref:
????https://zhuanlan.zhihu.com/p/32190223
注:
? ? 查看Android源碼發(fā)現(xiàn), API 26和27都在Activity.java的onCreate里鸽疾,都有這段是否為背景透明或者是浮動(dòng)窗口的判斷:
ActivityInfo:
而在API 28的Activity中制肮,已經(jīng)沒(méi)有這段判斷了递沪!
# 2.?Android 9.0上款慨,QQ分享報(bào)錯(cuò)。提示找不到org/apache/http/conn/scheme/SchemeRegistry 類(lèi)檩奠。
Error:?
????App的targetSdkVersion設(shè)置為28時(shí)笆凌,在Android 9.0的手機(jī)上進(jìn)行QQ分享報(bào)錯(cuò)士葫。提示找不到 org/apache/http/conn/scheme/SchemeRegistry 類(lèi)慢显。
原因:
? ??Apache HTTP 客戶端棄用(摘自Android 9.0官方變更說(shuō)明)
https://developer.android.google.cn/about/versions/pie/android-9.0-changes-28#apache-p
在 Android 6.0 中欠啤,我們?nèi)∠藢?duì) Apache HTTP 客戶端的支持屋灌。 從 Android 9 開(kāi)始,默認(rèn)情況下該內(nèi)容庫(kù)已從 bootclasspath 中移除且不可用于應(yīng)用共郭。
要繼續(xù)使用 Apache HTTP 客戶端祠丝,以 Android 9 及更高版本為目標(biāo)的應(yīng)用可以向其 AndroidManifest.xml 添加以下內(nèi)容:
注:擁有最低 SDK 版本 23 或更低版本的應(yīng)用需要 android:required=”false” 屬性,因?yàn)樵?API 級(jí)別低于 24 的設(shè)備上除嘹,org.apache.http.legacy 庫(kù)不可用写半。 (在這些設(shè)備上,Apache HTTP 類(lèi)在 bootclasspath 中提供尉咕。
Ref:
? ??https://developer.umeng.com/docs/66750/detail/94386