解决Android 8.0的Only fullscreen opaque activities can request orientation

0.949字数 355阅读 3259

今天发版本,在线上发现一个异常,全部来自统一机型,
菊厂系统,8.0,想了一下,只有mate-10,因为测试机有限,只能借老板的自用机做测试。
果然稳定复现。

问题出在WXEntryActivity,这个大家做开发的时候常用到,需要调用微信的接口(社会化登录,支付)都要把这个activity调起来。
比如我接入第三方的sdk进行微信登录然后调起这个activity,随后按返回,APP闪退。

我还未测试支付情况,估计情况也是一样。

谷歌一下
发现这哥们儿也是
https://stackoverflow.com/questions/47093127/facebook-android-only-fullscreen-opaque-activities-can-request-orientation
在调用Facebook的接口时出现这个bug

按照这位朋友的解答

http://www.codeprocedures.com/question/lock-screen-orientation-when-targeting-android-api-27-with-a-nonopaque-activity/

临时解决办法1

去掉WXEntryActivity的android:screenOrientation="portrait"

但是如果碰到你没法改清单的情况呢?比如有些第三方SDK调用是写在jar包里

临时解决办法2

版本降低到26

原因:

我项目的compileSdkVersion和targetSdkVersion均已经升到27。


core/java/android/app/Activity.java

参考 https://stackoverflow.com/questions/46992843/interstitial-admob-ads-illegalstateexception-only-fullscreen-activities-can-r

分析
https://www.jianshu.com/p/e6b5e7261c25

后续

see issue tracker https://issuetracker.google.com/issues/68454482

推荐阅读更多精彩内容