报错信息:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dyhoa.school/com.dyhoa.school.wxapi.WXEntryActivity}: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
在Android 8.0系统手机上,友盟QQ、微信的分享登陆报错,App闪退:
有一句是这样的Only fullscreen opaque activities can request orientation
,也就是说只有全屏不透明的activity才可以设置方向,既然知道问题所在就好办了。
出现这样的问题,绝大多数都是因为我们为了提高用户体验,手动取消App启动白屏或者黑屏的时候,将Splash界面设为了透明,然后这个时候又设置了方向为垂直,从而导致了这个问题。
设置这个主题是为了解决 App启动白屏的问题。
但是Android8.0下,透明主题的Activity是不可以设置方向的,但是我又设置了方向,所以会引发这个异常。
给出我的清单配置文件图示:
可以看到我主题透明的同时也设置了方向。因此异常就产生了,直接闪退。
<activity android:name="com.dyhoa.school.wxapi.WXEntryActivity" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name="com.tencent.tauth.AuthActivity" android:launchMode="singleTask" android:noHistory="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="tencent101503188" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
解决方法就是把红色线标注的直接删除就可以了。